aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
1 lines • 64.4 kB
JavaScript
"use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnLifecyclePolicy=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");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 CfnLifecyclePolicy extends cdk().CfnResource{static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLifecyclePolicyPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const ret=new CfnLifecyclePolicy(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}constructor(scope,id,props={}){super(scope,id,{type:CfnLifecyclePolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_dlm_CfnLifecyclePolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLifecyclePolicy),error}this.attrArn=cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING)),this.attrId=cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING)),this.copyTags=props.copyTags,this.createInterval=props.createInterval,this.crossRegionCopyTargets=props.crossRegionCopyTargets,this.defaultPolicy=props.defaultPolicy,this.description=props.description,this.exclusions=props.exclusions,this.executionRoleArn=props.executionRoleArn,this.extendDeletion=props.extendDeletion,this.policyDetails=props.policyDetails,this.retainInterval=props.retainInterval,this.state=props.state,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::DLM::LifecyclePolicy",props.tags,{tagPropertyName:"tags"}),this.tagsRaw=props.tags}get cfnProperties(){return{copyTags:this.copyTags,createInterval:this.createInterval,crossRegionCopyTargets:this.crossRegionCopyTargets,defaultPolicy:this.defaultPolicy,description:this.description,exclusions:this.exclusions,executionRoleArn:this.executionRoleArn,extendDeletion:this.extendDeletion,policyDetails:this.policyDetails,retainInterval:this.retainInterval,state:this.state,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",CfnLifecyclePolicy.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLifecyclePolicyPropsToCloudFormation(props)}}exports.CfnLifecyclePolicy=CfnLifecyclePolicy,_a=JSII_RTTI_SYMBOL_1,CfnLifecyclePolicy[_a]={fqn:"aws-cdk-lib.aws_dlm.CfnLifecyclePolicy",version:"2.185.0"},CfnLifecyclePolicy.CFN_RESOURCE_TYPE_NAME="AWS::DLM::LifecyclePolicy";function CfnLifecyclePolicyShareRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("targetAccounts",cdk().listValidator(cdk().validateString))(properties.targetAccounts)),errors.collect(cdk().propertyValidator("unshareInterval",cdk().validateNumber)(properties.unshareInterval)),errors.collect(cdk().propertyValidator("unshareIntervalUnit",cdk().validateString)(properties.unshareIntervalUnit)),errors.wrap('supplied properties not correct for "ShareRuleProperty"')}function convertCfnLifecyclePolicyShareRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyShareRulePropertyValidator(properties).assertSuccess(),{TargetAccounts:cdk().listMapper(cdk().stringToCloudFormation)(properties.targetAccounts),UnshareInterval:cdk().numberToCloudFormation(properties.unshareInterval),UnshareIntervalUnit:cdk().stringToCloudFormation(properties.unshareIntervalUnit)}):properties}function CfnLifecyclePolicyShareRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("targetAccounts","TargetAccounts",properties.TargetAccounts!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TargetAccounts):void 0),ret.addPropertyResult("unshareInterval","UnshareInterval",properties.UnshareInterval!=null?cfn_parse().FromCloudFormation.getNumber(properties.UnshareInterval):void 0),ret.addPropertyResult("unshareIntervalUnit","UnshareIntervalUnit",properties.UnshareIntervalUnit!=null?cfn_parse().FromCloudFormation.getString(properties.UnshareIntervalUnit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyDeprecateRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("count",cdk().validateNumber)(properties.count)),errors.collect(cdk().propertyValidator("interval",cdk().validateNumber)(properties.interval)),errors.collect(cdk().propertyValidator("intervalUnit",cdk().validateString)(properties.intervalUnit)),errors.wrap('supplied properties not correct for "DeprecateRuleProperty"')}function convertCfnLifecyclePolicyDeprecateRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyDeprecateRulePropertyValidator(properties).assertSuccess(),{Count:cdk().numberToCloudFormation(properties.count),Interval:cdk().numberToCloudFormation(properties.interval),IntervalUnit:cdk().stringToCloudFormation(properties.intervalUnit)}):properties}function CfnLifecyclePolicyDeprecateRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse().FromCloudFormation.getNumber(properties.Count):void 0),ret.addPropertyResult("interval","Interval",properties.Interval!=null?cfn_parse().FromCloudFormation.getNumber(properties.Interval):void 0),ret.addPropertyResult("intervalUnit","IntervalUnit",properties.IntervalUnit!=null?cfn_parse().FromCloudFormation.getString(properties.IntervalUnit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyScriptPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("executeOperationOnScriptFailure",cdk().validateBoolean)(properties.executeOperationOnScriptFailure)),errors.collect(cdk().propertyValidator("executionHandler",cdk().validateString)(properties.executionHandler)),errors.collect(cdk().propertyValidator("executionHandlerService",cdk().validateString)(properties.executionHandlerService)),errors.collect(cdk().propertyValidator("executionTimeout",cdk().validateNumber)(properties.executionTimeout)),errors.collect(cdk().propertyValidator("maximumRetryCount",cdk().validateNumber)(properties.maximumRetryCount)),errors.collect(cdk().propertyValidator("stages",cdk().listValidator(cdk().validateString))(properties.stages)),errors.wrap('supplied properties not correct for "ScriptProperty"')}function convertCfnLifecyclePolicyScriptPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyScriptPropertyValidator(properties).assertSuccess(),{ExecuteOperationOnScriptFailure:cdk().booleanToCloudFormation(properties.executeOperationOnScriptFailure),ExecutionHandler:cdk().stringToCloudFormation(properties.executionHandler),ExecutionHandlerService:cdk().stringToCloudFormation(properties.executionHandlerService),ExecutionTimeout:cdk().numberToCloudFormation(properties.executionTimeout),MaximumRetryCount:cdk().numberToCloudFormation(properties.maximumRetryCount),Stages:cdk().listMapper(cdk().stringToCloudFormation)(properties.stages)}):properties}function CfnLifecyclePolicyScriptPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("executeOperationOnScriptFailure","ExecuteOperationOnScriptFailure",properties.ExecuteOperationOnScriptFailure!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ExecuteOperationOnScriptFailure):void 0),ret.addPropertyResult("executionHandler","ExecutionHandler",properties.ExecutionHandler!=null?cfn_parse().FromCloudFormation.getString(properties.ExecutionHandler):void 0),ret.addPropertyResult("executionHandlerService","ExecutionHandlerService",properties.ExecutionHandlerService!=null?cfn_parse().FromCloudFormation.getString(properties.ExecutionHandlerService):void 0),ret.addPropertyResult("executionTimeout","ExecutionTimeout",properties.ExecutionTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.ExecutionTimeout):void 0),ret.addPropertyResult("maximumRetryCount","MaximumRetryCount",properties.MaximumRetryCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaximumRetryCount):void 0),ret.addPropertyResult("stages","Stages",properties.Stages!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Stages):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyCreateRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cronExpression",cdk().validateString)(properties.cronExpression)),errors.collect(cdk().propertyValidator("interval",cdk().validateNumber)(properties.interval)),errors.collect(cdk().propertyValidator("intervalUnit",cdk().validateString)(properties.intervalUnit)),errors.collect(cdk().propertyValidator("location",cdk().validateString)(properties.location)),errors.collect(cdk().propertyValidator("scripts",cdk().listValidator(CfnLifecyclePolicyScriptPropertyValidator))(properties.scripts)),errors.collect(cdk().propertyValidator("times",cdk().listValidator(cdk().validateString))(properties.times)),errors.wrap('supplied properties not correct for "CreateRuleProperty"')}function convertCfnLifecyclePolicyCreateRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyCreateRulePropertyValidator(properties).assertSuccess(),{CronExpression:cdk().stringToCloudFormation(properties.cronExpression),Interval:cdk().numberToCloudFormation(properties.interval),IntervalUnit:cdk().stringToCloudFormation(properties.intervalUnit),Location:cdk().stringToCloudFormation(properties.location),Scripts:cdk().listMapper(convertCfnLifecyclePolicyScriptPropertyToCloudFormation)(properties.scripts),Times:cdk().listMapper(cdk().stringToCloudFormation)(properties.times)}):properties}function CfnLifecyclePolicyCreateRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cronExpression","CronExpression",properties.CronExpression!=null?cfn_parse().FromCloudFormation.getString(properties.CronExpression):void 0),ret.addPropertyResult("interval","Interval",properties.Interval!=null?cfn_parse().FromCloudFormation.getNumber(properties.Interval):void 0),ret.addPropertyResult("intervalUnit","IntervalUnit",properties.IntervalUnit!=null?cfn_parse().FromCloudFormation.getString(properties.IntervalUnit):void 0),ret.addPropertyResult("location","Location",properties.Location!=null?cfn_parse().FromCloudFormation.getString(properties.Location):void 0),ret.addPropertyResult("scripts","Scripts",properties.Scripts!=null?cfn_parse().FromCloudFormation.getArray(CfnLifecyclePolicyScriptPropertyFromCloudFormation)(properties.Scripts):void 0),ret.addPropertyResult("times","Times",properties.Times!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Times):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyFastRestoreRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("availabilityZones",cdk().listValidator(cdk().validateString))(properties.availabilityZones)),errors.collect(cdk().propertyValidator("count",cdk().validateNumber)(properties.count)),errors.collect(cdk().propertyValidator("interval",cdk().validateNumber)(properties.interval)),errors.collect(cdk().propertyValidator("intervalUnit",cdk().validateString)(properties.intervalUnit)),errors.wrap('supplied properties not correct for "FastRestoreRuleProperty"')}function convertCfnLifecyclePolicyFastRestoreRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyFastRestoreRulePropertyValidator(properties).assertSuccess(),{AvailabilityZones:cdk().listMapper(cdk().stringToCloudFormation)(properties.availabilityZones),Count:cdk().numberToCloudFormation(properties.count),Interval:cdk().numberToCloudFormation(properties.interval),IntervalUnit:cdk().stringToCloudFormation(properties.intervalUnit)}):properties}function CfnLifecyclePolicyFastRestoreRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZones","AvailabilityZones",properties.AvailabilityZones!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AvailabilityZones):void 0),ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse().FromCloudFormation.getNumber(properties.Count):void 0),ret.addPropertyResult("interval","Interval",properties.Interval!=null?cfn_parse().FromCloudFormation.getNumber(properties.Interval):void 0),ret.addPropertyResult("intervalUnit","IntervalUnit",properties.IntervalUnit!=null?cfn_parse().FromCloudFormation.getString(properties.IntervalUnit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyRetentionArchiveTierPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("count",cdk().validateNumber)(properties.count)),errors.collect(cdk().propertyValidator("interval",cdk().validateNumber)(properties.interval)),errors.collect(cdk().propertyValidator("intervalUnit",cdk().validateString)(properties.intervalUnit)),errors.wrap('supplied properties not correct for "RetentionArchiveTierProperty"')}function convertCfnLifecyclePolicyRetentionArchiveTierPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyRetentionArchiveTierPropertyValidator(properties).assertSuccess(),{Count:cdk().numberToCloudFormation(properties.count),Interval:cdk().numberToCloudFormation(properties.interval),IntervalUnit:cdk().stringToCloudFormation(properties.intervalUnit)}):properties}function CfnLifecyclePolicyRetentionArchiveTierPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse().FromCloudFormation.getNumber(properties.Count):void 0),ret.addPropertyResult("interval","Interval",properties.Interval!=null?cfn_parse().FromCloudFormation.getNumber(properties.Interval):void 0),ret.addPropertyResult("intervalUnit","IntervalUnit",properties.IntervalUnit!=null?cfn_parse().FromCloudFormation.getString(properties.IntervalUnit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyArchiveRetainRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("retentionArchiveTier",cdk().requiredValidator)(properties.retentionArchiveTier)),errors.collect(cdk().propertyValidator("retentionArchiveTier",CfnLifecyclePolicyRetentionArchiveTierPropertyValidator)(properties.retentionArchiveTier)),errors.wrap('supplied properties not correct for "ArchiveRetainRuleProperty"')}function convertCfnLifecyclePolicyArchiveRetainRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyArchiveRetainRulePropertyValidator(properties).assertSuccess(),{RetentionArchiveTier:convertCfnLifecyclePolicyRetentionArchiveTierPropertyToCloudFormation(properties.retentionArchiveTier)}):properties}function CfnLifecyclePolicyArchiveRetainRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("retentionArchiveTier","RetentionArchiveTier",properties.RetentionArchiveTier!=null?CfnLifecyclePolicyRetentionArchiveTierPropertyFromCloudFormation(properties.RetentionArchiveTier):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyArchiveRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("retainRule",cdk().requiredValidator)(properties.retainRule)),errors.collect(cdk().propertyValidator("retainRule",CfnLifecyclePolicyArchiveRetainRulePropertyValidator)(properties.retainRule)),errors.wrap('supplied properties not correct for "ArchiveRuleProperty"')}function convertCfnLifecyclePolicyArchiveRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyArchiveRulePropertyValidator(properties).assertSuccess(),{RetainRule:convertCfnLifecyclePolicyArchiveRetainRulePropertyToCloudFormation(properties.retainRule)}):properties}function CfnLifecyclePolicyArchiveRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("retainRule","RetainRule",properties.RetainRule!=null?CfnLifecyclePolicyArchiveRetainRulePropertyFromCloudFormation(properties.RetainRule):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyRetainRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("count",cdk().validateNumber)(properties.count)),errors.collect(cdk().propertyValidator("interval",cdk().validateNumber)(properties.interval)),errors.collect(cdk().propertyValidator("intervalUnit",cdk().validateString)(properties.intervalUnit)),errors.wrap('supplied properties not correct for "RetainRuleProperty"')}function convertCfnLifecyclePolicyRetainRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyRetainRulePropertyValidator(properties).assertSuccess(),{Count:cdk().numberToCloudFormation(properties.count),Interval:cdk().numberToCloudFormation(properties.interval),IntervalUnit:cdk().stringToCloudFormation(properties.intervalUnit)}):properties}function CfnLifecyclePolicyRetainRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse().FromCloudFormation.getNumber(properties.Count):void 0),ret.addPropertyResult("interval","Interval",properties.Interval!=null?cfn_parse().FromCloudFormation.getNumber(properties.Interval):void 0),ret.addPropertyResult("intervalUnit","IntervalUnit",properties.IntervalUnit!=null?cfn_parse().FromCloudFormation.getString(properties.IntervalUnit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyCrossRegionCopyDeprecateRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("interval",cdk().requiredValidator)(properties.interval)),errors.collect(cdk().propertyValidator("interval",cdk().validateNumber)(properties.interval)),errors.collect(cdk().propertyValidator("intervalUnit",cdk().requiredValidator)(properties.intervalUnit)),errors.collect(cdk().propertyValidator("intervalUnit",cdk().validateString)(properties.intervalUnit)),errors.wrap('supplied properties not correct for "CrossRegionCopyDeprecateRuleProperty"')}function convertCfnLifecyclePolicyCrossRegionCopyDeprecateRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyCrossRegionCopyDeprecateRulePropertyValidator(properties).assertSuccess(),{Interval:cdk().numberToCloudFormation(properties.interval),IntervalUnit:cdk().stringToCloudFormation(properties.intervalUnit)}):properties}function CfnLifecyclePolicyCrossRegionCopyDeprecateRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("interval","Interval",properties.Interval!=null?cfn_parse().FromCloudFormation.getNumber(properties.Interval):void 0),ret.addPropertyResult("intervalUnit","IntervalUnit",properties.IntervalUnit!=null?cfn_parse().FromCloudFormation.getString(properties.IntervalUnit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyCrossRegionCopyRetainRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("interval",cdk().requiredValidator)(properties.interval)),errors.collect(cdk().propertyValidator("interval",cdk().validateNumber)(properties.interval)),errors.collect(cdk().propertyValidator("intervalUnit",cdk().requiredValidator)(properties.intervalUnit)),errors.collect(cdk().propertyValidator("intervalUnit",cdk().validateString)(properties.intervalUnit)),errors.wrap('supplied properties not correct for "CrossRegionCopyRetainRuleProperty"')}function convertCfnLifecyclePolicyCrossRegionCopyRetainRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyCrossRegionCopyRetainRulePropertyValidator(properties).assertSuccess(),{Interval:cdk().numberToCloudFormation(properties.interval),IntervalUnit:cdk().stringToCloudFormation(properties.intervalUnit)}):properties}function CfnLifecyclePolicyCrossRegionCopyRetainRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("interval","Interval",properties.Interval!=null?cfn_parse().FromCloudFormation.getNumber(properties.Interval):void 0),ret.addPropertyResult("intervalUnit","IntervalUnit",properties.IntervalUnit!=null?cfn_parse().FromCloudFormation.getString(properties.IntervalUnit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyCrossRegionCopyRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cmkArn",cdk().validateString)(properties.cmkArn)),errors.collect(cdk().propertyValidator("copyTags",cdk().validateBoolean)(properties.copyTags)),errors.collect(cdk().propertyValidator("deprecateRule",CfnLifecyclePolicyCrossRegionCopyDeprecateRulePropertyValidator)(properties.deprecateRule)),errors.collect(cdk().propertyValidator("encrypted",cdk().requiredValidator)(properties.encrypted)),errors.collect(cdk().propertyValidator("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.collect(cdk().propertyValidator("retainRule",CfnLifecyclePolicyCrossRegionCopyRetainRulePropertyValidator)(properties.retainRule)),errors.collect(cdk().propertyValidator("target",cdk().validateString)(properties.target)),errors.collect(cdk().propertyValidator("targetRegion",cdk().validateString)(properties.targetRegion)),errors.wrap('supplied properties not correct for "CrossRegionCopyRuleProperty"')}function convertCfnLifecyclePolicyCrossRegionCopyRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyCrossRegionCopyRulePropertyValidator(properties).assertSuccess(),{CmkArn:cdk().stringToCloudFormation(properties.cmkArn),CopyTags:cdk().booleanToCloudFormation(properties.copyTags),DeprecateRule:convertCfnLifecyclePolicyCrossRegionCopyDeprecateRulePropertyToCloudFormation(properties.deprecateRule),Encrypted:cdk().booleanToCloudFormation(properties.encrypted),RetainRule:convertCfnLifecyclePolicyCrossRegionCopyRetainRulePropertyToCloudFormation(properties.retainRule),Target:cdk().stringToCloudFormation(properties.target),TargetRegion:cdk().stringToCloudFormation(properties.targetRegion)}):properties}function CfnLifecyclePolicyCrossRegionCopyRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cmkArn","CmkArn",properties.CmkArn!=null?cfn_parse().FromCloudFormation.getString(properties.CmkArn):void 0),ret.addPropertyResult("copyTags","CopyTags",properties.CopyTags!=null?cfn_parse().FromCloudFormation.getBoolean(properties.CopyTags):void 0),ret.addPropertyResult("deprecateRule","DeprecateRule",properties.DeprecateRule!=null?CfnLifecyclePolicyCrossRegionCopyDeprecateRulePropertyFromCloudFormation(properties.DeprecateRule):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("retainRule","RetainRule",properties.RetainRule!=null?CfnLifecyclePolicyCrossRegionCopyRetainRulePropertyFromCloudFormation(properties.RetainRule):void 0),ret.addPropertyResult("target","Target",properties.Target!=null?cfn_parse().FromCloudFormation.getString(properties.Target):void 0),ret.addPropertyResult("targetRegion","TargetRegion",properties.TargetRegion!=null?cfn_parse().FromCloudFormation.getString(properties.TargetRegion):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicySchedulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("archiveRule",CfnLifecyclePolicyArchiveRulePropertyValidator)(properties.archiveRule)),errors.collect(cdk().propertyValidator("copyTags",cdk().validateBoolean)(properties.copyTags)),errors.collect(cdk().propertyValidator("createRule",CfnLifecyclePolicyCreateRulePropertyValidator)(properties.createRule)),errors.collect(cdk().propertyValidator("crossRegionCopyRules",cdk().listValidator(CfnLifecyclePolicyCrossRegionCopyRulePropertyValidator))(properties.crossRegionCopyRules)),errors.collect(cdk().propertyValidator("deprecateRule",CfnLifecyclePolicyDeprecateRulePropertyValidator)(properties.deprecateRule)),errors.collect(cdk().propertyValidator("fastRestoreRule",CfnLifecyclePolicyFastRestoreRulePropertyValidator)(properties.fastRestoreRule)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("retainRule",CfnLifecyclePolicyRetainRulePropertyValidator)(properties.retainRule)),errors.collect(cdk().propertyValidator("shareRules",cdk().listValidator(CfnLifecyclePolicyShareRulePropertyValidator))(properties.shareRules)),errors.collect(cdk().propertyValidator("tagsToAdd",cdk().listValidator(cdk().validateCfnTag))(properties.tagsToAdd)),errors.collect(cdk().propertyValidator("variableTags",cdk().listValidator(cdk().validateCfnTag))(properties.variableTags)),errors.wrap('supplied properties not correct for "ScheduleProperty"')}function convertCfnLifecyclePolicySchedulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicySchedulePropertyValidator(properties).assertSuccess(),{ArchiveRule:convertCfnLifecyclePolicyArchiveRulePropertyToCloudFormation(properties.archiveRule),CopyTags:cdk().booleanToCloudFormation(properties.copyTags),CreateRule:convertCfnLifecyclePolicyCreateRulePropertyToCloudFormation(properties.createRule),CrossRegionCopyRules:cdk().listMapper(convertCfnLifecyclePolicyCrossRegionCopyRulePropertyToCloudFormation)(properties.crossRegionCopyRules),DeprecateRule:convertCfnLifecyclePolicyDeprecateRulePropertyToCloudFormation(properties.deprecateRule),FastRestoreRule:convertCfnLifecyclePolicyFastRestoreRulePropertyToCloudFormation(properties.fastRestoreRule),Name:cdk().stringToCloudFormation(properties.name),RetainRule:convertCfnLifecyclePolicyRetainRulePropertyToCloudFormation(properties.retainRule),ShareRules:cdk().listMapper(convertCfnLifecyclePolicyShareRulePropertyToCloudFormation)(properties.shareRules),TagsToAdd:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tagsToAdd),VariableTags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.variableTags)}):properties}function CfnLifecyclePolicySchedulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("archiveRule","ArchiveRule",properties.ArchiveRule!=null?CfnLifecyclePolicyArchiveRulePropertyFromCloudFormation(properties.ArchiveRule):void 0),ret.addPropertyResult("copyTags","CopyTags",properties.CopyTags!=null?cfn_parse().FromCloudFormation.getBoolean(properties.CopyTags):void 0),ret.addPropertyResult("createRule","CreateRule",properties.CreateRule!=null?CfnLifecyclePolicyCreateRulePropertyFromCloudFormation(properties.CreateRule):void 0),ret.addPropertyResult("crossRegionCopyRules","CrossRegionCopyRules",properties.CrossRegionCopyRules!=null?cfn_parse().FromCloudFormation.getArray(CfnLifecyclePolicyCrossRegionCopyRulePropertyFromCloudFormation)(properties.CrossRegionCopyRules):void 0),ret.addPropertyResult("deprecateRule","DeprecateRule",properties.DeprecateRule!=null?CfnLifecyclePolicyDeprecateRulePropertyFromCloudFormation(properties.DeprecateRule):void 0),ret.addPropertyResult("fastRestoreRule","FastRestoreRule",properties.FastRestoreRule!=null?CfnLifecyclePolicyFastRestoreRulePropertyFromCloudFormation(properties.FastRestoreRule):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("retainRule","RetainRule",properties.RetainRule!=null?CfnLifecyclePolicyRetainRulePropertyFromCloudFormation(properties.RetainRule):void 0),ret.addPropertyResult("shareRules","ShareRules",properties.ShareRules!=null?cfn_parse().FromCloudFormation.getArray(CfnLifecyclePolicyShareRulePropertyFromCloudFormation)(properties.ShareRules):void 0),ret.addPropertyResult("tagsToAdd","TagsToAdd",properties.TagsToAdd!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.TagsToAdd):void 0),ret.addPropertyResult("variableTags","VariableTags",properties.VariableTags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.VariableTags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyEventParametersPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("descriptionRegex",cdk().validateString)(properties.descriptionRegex)),errors.collect(cdk().propertyValidator("eventType",cdk().requiredValidator)(properties.eventType)),errors.collect(cdk().propertyValidator("eventType",cdk().validateString)(properties.eventType)),errors.collect(cdk().propertyValidator("snapshotOwner",cdk().requiredValidator)(properties.snapshotOwner)),errors.collect(cdk().propertyValidator("snapshotOwner",cdk().listValidator(cdk().validateString))(properties.snapshotOwner)),errors.wrap('supplied properties not correct for "EventParametersProperty"')}function convertCfnLifecyclePolicyEventParametersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyEventParametersPropertyValidator(properties).assertSuccess(),{DescriptionRegex:cdk().stringToCloudFormation(properties.descriptionRegex),EventType:cdk().stringToCloudFormation(properties.eventType),SnapshotOwner:cdk().listMapper(cdk().stringToCloudFormation)(properties.snapshotOwner)}):properties}function CfnLifecyclePolicyEventParametersPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("descriptionRegex","DescriptionRegex",properties.DescriptionRegex!=null?cfn_parse().FromCloudFormation.getString(properties.DescriptionRegex):void 0),ret.addPropertyResult("eventType","EventType",properties.EventType!=null?cfn_parse().FromCloudFormation.getString(properties.EventType):void 0),ret.addPropertyResult("snapshotOwner","SnapshotOwner",properties.SnapshotOwner!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SnapshotOwner):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyEventSourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("parameters",CfnLifecyclePolicyEventParametersPropertyValidator)(properties.parameters)),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 "EventSourceProperty"')}function convertCfnLifecyclePolicyEventSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyEventSourcePropertyValidator(properties).assertSuccess(),{Parameters:convertCfnLifecyclePolicyEventParametersPropertyToCloudFormation(properties.parameters),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnLifecyclePolicyEventSourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("parameters","Parameters",properties.Parameters!=null?CfnLifecyclePolicyEventParametersPropertyFromCloudFormation(properties.Parameters):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyParametersPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("excludeBootVolume",cdk().validateBoolean)(properties.excludeBootVolume)),errors.collect(cdk().propertyValidator("excludeDataVolumeTags",cdk().listValidator(cdk().validateCfnTag))(properties.excludeDataVolumeTags)),errors.collect(cdk().propertyValidator("noReboot",cdk().validateBoolean)(properties.noReboot)),errors.wrap('supplied properties not correct for "ParametersProperty"')}function convertCfnLifecyclePolicyParametersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyParametersPropertyValidator(properties).assertSuccess(),{ExcludeBootVolume:cdk().booleanToCloudFormation(properties.excludeBootVolume),ExcludeDataVolumeTags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.excludeDataVolumeTags),NoReboot:cdk().booleanToCloudFormation(properties.noReboot)}):properties}function CfnLifecyclePolicyParametersPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("excludeBootVolume","ExcludeBootVolume",properties.ExcludeBootVolume!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ExcludeBootVolume):void 0),ret.addPropertyResult("excludeDataVolumeTags","ExcludeDataVolumeTags",properties.ExcludeDataVolumeTags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.ExcludeDataVolumeTags):void 0),ret.addPropertyResult("noReboot","NoReboot",properties.NoReboot!=null?cfn_parse().FromCloudFormation.getBoolean(properties.NoReboot):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyEncryptionConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cmkArn",cdk().validateString)(properties.cmkArn)),errors.collect(cdk().propertyValidator("encrypted",cdk().requiredValidator)(properties.encrypted)),errors.collect(cdk().propertyValidator("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.wrap('supplied properties not correct for "EncryptionConfigurationProperty"')}function convertCfnLifecyclePolicyEncryptionConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyEncryptionConfigurationPropertyValidator(properties).assertSuccess(),{CmkArn:cdk().stringToCloudFormation(properties.cmkArn),Encrypted:cdk().booleanToCloudFormation(properties.encrypted)}):properties}function CfnLifecyclePolicyEncryptionConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cmkArn","CmkArn",properties.CmkArn!=null?cfn_parse().FromCloudFormation.getString(properties.CmkArn):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyCrossRegionCopyActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("encryptionConfiguration",cdk().requiredValidator)(properties.encryptionConfiguration)),errors.collect(cdk().propertyValidator("encryptionConfiguration",CfnLifecyclePolicyEncryptionConfigurationPropertyValidator)(properties.encryptionConfiguration)),errors.collect(cdk().propertyValidator("retainRule",CfnLifecyclePolicyCrossRegionCopyRetainRulePropertyValidator)(properties.retainRule)),errors.collect(cdk().propertyValidator("target",cdk().requiredValidator)(properties.target)),errors.collect(cdk().propertyValidator("target",cdk().validateString)(properties.target)),errors.wrap('supplied properties not correct for "CrossRegionCopyActionProperty"')}function convertCfnLifecyclePolicyCrossRegionCopyActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyCrossRegionCopyActionPropertyValidator(properties).assertSuccess(),{EncryptionConfiguration:convertCfnLifecyclePolicyEncryptionConfigurationPropertyToCloudFormation(properties.encryptionConfiguration),RetainRule:convertCfnLifecyclePolicyCrossRegionCopyRetainRulePropertyToCloudFormation(properties.retainRule),Target:cdk().stringToCloudFormation(properties.target)}):properties}function CfnLifecyclePolicyCrossRegionCopyActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionConfiguration","EncryptionConfiguration",properties.EncryptionConfiguration!=null?CfnLifecyclePolicyEncryptionConfigurationPropertyFromCloudFormation(properties.EncryptionConfiguration):void 0),ret.addPropertyResult("retainRule","RetainRule",properties.RetainRule!=null?CfnLifecyclePolicyCrossRegionCopyRetainRulePropertyFromCloudFormation(properties.RetainRule):void 0),ret.addPropertyResult("target","Target",properties.Target!=null?cfn_parse().FromCloudFormation.getString(properties.Target):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyActionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("crossRegionCopy",cdk().requiredValidator)(properties.crossRegionCopy)),errors.collect(cdk().propertyValidator("crossRegionCopy",cdk().listValidator(CfnLifecyclePolicyCrossRegionCopyActionPropertyValidator))(properties.crossRegionCopy)),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 "ActionProperty"')}function convertCfnLifecyclePolicyActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyActionPropertyValidator(properties).assertSuccess(),{CrossRegionCopy:cdk().listMapper(convertCfnLifecyclePolicyCrossRegionCopyActionPropertyToCloudFormation)(properties.crossRegionCopy),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnLifecyclePolicyActionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("crossRegionCopy","CrossRegionCopy",properties.CrossRegionCopy!=null?cfn_parse().FromCloudFormation.getArray(CfnLifecyclePolicyCrossRegionCopyActionPropertyFromCloudFormation)(properties.CrossRegionCopy):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyE