UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 48.4 kB
"use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnLifecyclePolicy=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),cfn_parse=require("../../core/lib/helpers-internal");function CfnLifecyclePolicyPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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("executionRoleArn",cdk.validateString)(properties.executionRoleArn)),errors.collect(cdk.propertyValidator("policyDetails",CfnLifecyclePolicy_PolicyDetailsPropertyValidator)(properties.policyDetails)),errors.collect(cdk.propertyValidator("state",cdk.validateString)(properties.state)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnLifecyclePolicyProps"')}function cfnLifecyclePolicyPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicyPropsValidator(properties).assertSuccess(),{Description:cdk.stringToCloudFormation(properties.description),ExecutionRoleArn:cdk.stringToCloudFormation(properties.executionRoleArn),PolicyDetails:cfnLifecyclePolicyPolicyDetailsPropertyToCloudFormation(properties.policyDetails),State:cdk.stringToCloudFormation(properties.state),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLifecyclePolicyPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")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("executionRoleArn","ExecutionRoleArn",properties.ExecutionRoleArn!=null?cfn_parse.FromCloudFormation.getString(properties.ExecutionRoleArn):void 0),ret.addPropertyResult("policyDetails","PolicyDetails",properties.PolicyDetails!=null?CfnLifecyclePolicyPolicyDetailsPropertyFromCloudFormation(properties.PolicyDetails):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse.FromCloudFormation.getString(properties.State):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 CfnLifecyclePolicy extends cdk.CfnResource{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.description=props.description,this.executionRoleArn=props.executionRoleArn,this.policyDetails=props.policyDetails,this.state=props.state,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::DLM::LifecyclePolicy",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLifecyclePolicyPropsFromCloudFormation(resourceProperties),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}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)}get cfnProperties(){return{description:this.description,executionRoleArn:this.executionRoleArn,policyDetails:this.policyDetails,state:this.state,tags:this.tags.renderTags()}}renderProperties(props){return cfnLifecyclePolicyPropsToCloudFormation(props)}}exports.CfnLifecyclePolicy=CfnLifecyclePolicy,_a=JSII_RTTI_SYMBOL_1,CfnLifecyclePolicy[_a]={fqn:"aws-cdk-lib.aws_dlm.CfnLifecyclePolicy",version:"2.70.0"},CfnLifecyclePolicy.CFN_RESOURCE_TYPE_NAME="AWS::DLM::LifecyclePolicy";function CfnLifecyclePolicy_ActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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(CfnLifecyclePolicy_CrossRegionCopyActionPropertyValidator))(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 cfnLifecyclePolicyActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_ActionPropertyValidator(properties).assertSuccess(),{CrossRegionCopy:cdk.listMapper(cfnLifecyclePolicyCrossRegionCopyActionPropertyToCloudFormation)(properties.crossRegionCopy),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnLifecyclePolicyActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("crossRegionCopy","CrossRegionCopy",cfn_parse.FromCloudFormation.getArray(CfnLifecyclePolicyCrossRegionCopyActionPropertyFromCloudFormation)(properties.CrossRegionCopy)),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicy_ArchiveRetainRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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",CfnLifecyclePolicy_RetentionArchiveTierPropertyValidator)(properties.retentionArchiveTier)),errors.wrap('supplied properties not correct for "ArchiveRetainRuleProperty"')}function cfnLifecyclePolicyArchiveRetainRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_ArchiveRetainRulePropertyValidator(properties).assertSuccess(),{RetentionArchiveTier:cfnLifecyclePolicyRetentionArchiveTierPropertyToCloudFormation(properties.retentionArchiveTier)}):properties}function CfnLifecyclePolicyArchiveRetainRulePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("retentionArchiveTier","RetentionArchiveTier",CfnLifecyclePolicyRetentionArchiveTierPropertyFromCloudFormation(properties.RetentionArchiveTier)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicy_ArchiveRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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",CfnLifecyclePolicy_ArchiveRetainRulePropertyValidator)(properties.retainRule)),errors.wrap('supplied properties not correct for "ArchiveRuleProperty"')}function cfnLifecyclePolicyArchiveRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_ArchiveRulePropertyValidator(properties).assertSuccess(),{RetainRule:cfnLifecyclePolicyArchiveRetainRulePropertyToCloudFormation(properties.retainRule)}):properties}function CfnLifecyclePolicyArchiveRulePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("retainRule","RetainRule",CfnLifecyclePolicyArchiveRetainRulePropertyFromCloudFormation(properties.RetainRule)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicy_CreateRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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("times",cdk.listValidator(cdk.validateString))(properties.times)),errors.wrap('supplied properties not correct for "CreateRuleProperty"')}function cfnLifecyclePolicyCreateRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_CreateRulePropertyValidator(properties).assertSuccess(),{CronExpression:cdk.stringToCloudFormation(properties.cronExpression),Interval:cdk.numberToCloudFormation(properties.interval),IntervalUnit:cdk.stringToCloudFormation(properties.intervalUnit),Location:cdk.stringToCloudFormation(properties.location),Times:cdk.listMapper(cdk.stringToCloudFormation)(properties.times)}):properties}function CfnLifecyclePolicyCreateRulePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")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("times","Times",properties.Times!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Times):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicy_CrossRegionCopyActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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",CfnLifecyclePolicy_EncryptionConfigurationPropertyValidator)(properties.encryptionConfiguration)),errors.collect(cdk.propertyValidator("retainRule",CfnLifecyclePolicy_CrossRegionCopyRetainRulePropertyValidator)(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 cfnLifecyclePolicyCrossRegionCopyActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_CrossRegionCopyActionPropertyValidator(properties).assertSuccess(),{EncryptionConfiguration:cfnLifecyclePolicyEncryptionConfigurationPropertyToCloudFormation(properties.encryptionConfiguration),RetainRule:cfnLifecyclePolicyCrossRegionCopyRetainRulePropertyToCloudFormation(properties.retainRule),Target:cdk.stringToCloudFormation(properties.target)}):properties}function CfnLifecyclePolicyCrossRegionCopyActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionConfiguration","EncryptionConfiguration",CfnLifecyclePolicyEncryptionConfigurationPropertyFromCloudFormation(properties.EncryptionConfiguration)),ret.addPropertyResult("retainRule","RetainRule",properties.RetainRule!=null?CfnLifecyclePolicyCrossRegionCopyRetainRulePropertyFromCloudFormation(properties.RetainRule):void 0),ret.addPropertyResult("target","Target",cfn_parse.FromCloudFormation.getString(properties.Target)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicy_CrossRegionCopyDeprecateRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnLifecyclePolicyCrossRegionCopyDeprecateRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_CrossRegionCopyDeprecateRulePropertyValidator(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??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("interval","Interval",cfn_parse.FromCloudFormation.getNumber(properties.Interval)),ret.addPropertyResult("intervalUnit","IntervalUnit",cfn_parse.FromCloudFormation.getString(properties.IntervalUnit)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicy_CrossRegionCopyRetainRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnLifecyclePolicyCrossRegionCopyRetainRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_CrossRegionCopyRetainRulePropertyValidator(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??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("interval","Interval",cfn_parse.FromCloudFormation.getNumber(properties.Interval)),ret.addPropertyResult("intervalUnit","IntervalUnit",cfn_parse.FromCloudFormation.getString(properties.IntervalUnit)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicy_CrossRegionCopyRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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",CfnLifecyclePolicy_CrossRegionCopyDeprecateRulePropertyValidator)(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",CfnLifecyclePolicy_CrossRegionCopyRetainRulePropertyValidator)(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 cfnLifecyclePolicyCrossRegionCopyRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_CrossRegionCopyRulePropertyValidator(properties).assertSuccess(),{CmkArn:cdk.stringToCloudFormation(properties.cmkArn),CopyTags:cdk.booleanToCloudFormation(properties.copyTags),DeprecateRule:cfnLifecyclePolicyCrossRegionCopyDeprecateRulePropertyToCloudFormation(properties.deprecateRule),Encrypted:cdk.booleanToCloudFormation(properties.encrypted),RetainRule:cfnLifecyclePolicyCrossRegionCopyRetainRulePropertyToCloudFormation(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??{},typeof properties!="object")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",cfn_parse.FromCloudFormation.getBoolean(properties.Encrypted)),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 CfnLifecyclePolicy_DeprecateRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnLifecyclePolicyDeprecateRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_DeprecateRulePropertyValidator(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??{},typeof properties!="object")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 CfnLifecyclePolicy_EncryptionConfigurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnLifecyclePolicyEncryptionConfigurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_EncryptionConfigurationPropertyValidator(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??{},typeof properties!="object")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",cfn_parse.FromCloudFormation.getBoolean(properties.Encrypted)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicy_EventParametersPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnLifecyclePolicyEventParametersPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_EventParametersPropertyValidator(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??{},typeof properties!="object")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",cfn_parse.FromCloudFormation.getString(properties.EventType)),ret.addPropertyResult("snapshotOwner","SnapshotOwner",cfn_parse.FromCloudFormation.getStringArray(properties.SnapshotOwner)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicy_EventSourcePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("parameters",CfnLifecyclePolicy_EventParametersPropertyValidator)(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 cfnLifecyclePolicyEventSourcePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_EventSourcePropertyValidator(properties).assertSuccess(),{Parameters:cfnLifecyclePolicyEventParametersPropertyToCloudFormation(properties.parameters),Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnLifecyclePolicyEventSourcePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")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",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicy_FastRestoreRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnLifecyclePolicyFastRestoreRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_FastRestoreRulePropertyValidator(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??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZones","AvailabilityZones",properties.AvailabilityZones!=null?cfn_parse.FromCloudFormation.getStringArray(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 CfnLifecyclePolicy_ParametersPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnLifecyclePolicyParametersPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_ParametersPropertyValidator(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??{},typeof properties!="object")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 CfnLifecyclePolicy_PolicyDetailsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("actions",cdk.listValidator(CfnLifecyclePolicy_ActionPropertyValidator))(properties.actions)),errors.collect(cdk.propertyValidator("eventSource",CfnLifecyclePolicy_EventSourcePropertyValidator)(properties.eventSource)),errors.collect(cdk.propertyValidator("parameters",CfnLifecyclePolicy_ParametersPropertyValidator)(properties.parameters)),errors.collect(cdk.propertyValidator("policyType",cdk.validateString)(properties.policyType)),errors.collect(cdk.propertyValidator("resourceLocations",cdk.listValidator(cdk.validateString))(properties.resourceLocations)),errors.collect(cdk.propertyValidator("resourceTypes",cdk.listValidator(cdk.validateString))(properties.resourceTypes)),errors.collect(cdk.propertyValidator("schedules",cdk.listValidator(CfnLifecyclePolicy_SchedulePropertyValidator))(properties.schedules)),errors.collect(cdk.propertyValidator("targetTags",cdk.listValidator(cdk.validateCfnTag))(properties.targetTags)),errors.wrap('supplied properties not correct for "PolicyDetailsProperty"')}function cfnLifecyclePolicyPolicyDetailsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_PolicyDetailsPropertyValidator(properties).assertSuccess(),{Actions:cdk.listMapper(cfnLifecyclePolicyActionPropertyToCloudFormation)(properties.actions),EventSource:cfnLifecyclePolicyEventSourcePropertyToCloudFormation(properties.eventSource),Parameters:cfnLifecyclePolicyParametersPropertyToCloudFormation(properties.parameters),PolicyType:cdk.stringToCloudFormation(properties.policyType),ResourceLocations:cdk.listMapper(cdk.stringToCloudFormation)(properties.resourceLocations),ResourceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.resourceTypes),Schedules:cdk.listMapper(cfnLifecyclePolicySchedulePropertyToCloudFormation)(properties.schedules),TargetTags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.targetTags)}):properties}function CfnLifecyclePolicyPolicyDetailsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("actions","Actions",properties.Actions!=null?cfn_parse.FromCloudFormation.getArray(CfnLifecyclePolicyActionPropertyFromCloudFormation)(properties.Actions):void 0),ret.addPropertyResult("eventSource","EventSource",properties.EventSource!=null?CfnLifecyclePolicyEventSourcePropertyFromCloudFormation(properties.EventSource):void 0),ret.addPropertyResult("parameters","Parameters",properties.Parameters!=null?CfnLifecyclePolicyParametersPropertyFromCloudFormation(properties.Parameters):void 0),ret.addPropertyResult("policyType","PolicyType",properties.PolicyType!=null?cfn_parse.FromCloudFormation.getString(properties.PolicyType):void 0),ret.addPropertyResult("resourceLocations","ResourceLocations",properties.ResourceLocations!=null?cfn_parse.FromCloudFormation.getStringArray(properties.ResourceLocations):void 0),ret.addPropertyResult("resourceTypes","ResourceTypes",properties.ResourceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.ResourceTypes):void 0),ret.addPropertyResult("schedules","Schedules",properties.Schedules!=null?cfn_parse.FromCloudFormation.getArray(CfnLifecyclePolicySchedulePropertyFromCloudFormation)(properties.Schedules):void 0),ret.addPropertyResult("targetTags","TargetTags",properties.TargetTags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.TargetTags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicy_RetainRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnLifecyclePolicyRetainRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_RetainRulePropertyValidator(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??{},typeof properties!="object")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 CfnLifecyclePolicy_RetentionArchiveTierPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnLifecyclePolicyRetentionArchiveTierPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_RetentionArchiveTierPropertyValidator(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??{},typeof properties!="object")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 CfnLifecyclePolicy_SchedulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("archiveRule",CfnLifecyclePolicy_ArchiveRulePropertyValidator)(properties.archiveRule)),errors.collect(cdk.propertyValidator("copyTags",cdk.validateBoolean)(properties.copyTags)),errors.collect(cdk.propertyValidator("createRule",CfnLifecyclePolicy_CreateRulePropertyValidator)(properties.createRule)),errors.collect(cdk.propertyValidator("crossRegionCopyRules",cdk.listValidator(CfnLifecyclePolicy_CrossRegionCopyRulePropertyValidator))(properties.crossRegionCopyRules)),errors.collect(cdk.propertyValidator("deprecateRule",CfnLifecyclePolicy_DeprecateRulePropertyValidator)(properties.deprecateRule)),errors.collect(cdk.propertyValidator("fastRestoreRule",CfnLifecyclePolicy_FastRestoreRulePropertyValidator)(properties.fastRestoreRule)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.collect(cdk.propertyValidator("retainRule",CfnLifecyclePolicy_RetainRulePropertyValidator)(properties.retainRule)),errors.collect(cdk.propertyValidator("shareRules",cdk.listValidator(CfnLifecyclePolicy_ShareRulePropertyValidator))(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 cfnLifecyclePolicySchedulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_SchedulePropertyValidator(properties).assertSuccess(),{ArchiveRule:cfnLifecyclePolicyArchiveRulePropertyToCloudFormation(properties.archiveRule),CopyTags:cdk.booleanToCloudFormation(properties.copyTags),CreateRule:cfnLifecyclePolicyCreateRulePropertyToCloudFormation(properties.createRule),CrossRegionCopyRules:cdk.listMapper(cfnLifecyclePolicyCrossRegionCopyRulePropertyToCloudFormation)(properties.crossRegionCopyRules),DeprecateRule:cfnLifecyclePolicyDeprecateRulePropertyToCloudFormation(properties.deprecateRule),FastRestoreRule:cfnLifecyclePolicyFastRestoreRulePropertyToCloudFormation(properties.fastRestoreRule),Name:cdk.stringToCloudFormation(properties.name),RetainRule:cfnLifecyclePolicyRetainRulePropertyToCloudFormation(properties.retainRule),ShareRules:cdk.listMapper(cfnLifecyclePolicyShareRulePropertyToCloudFormation)(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??{},typeof properties!="object")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 CfnLifecyclePolicy_ShareRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&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 cfnLifecyclePolicyShareRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLifecyclePolicy_ShareRulePropertyValidator(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??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("targetAccounts","TargetAccounts",properties.TargetAccounts!=null?cfn_parse.FromCloudFormation.getStringArray(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}