Files
agent-claw/cdk/node_modules/aws-cdk-lib/aws-imagebuilder/lib/imagebuilder.generated.js
2026-05-06 18:55:16 -05:00

2 lines
223 KiB
JavaScript

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnWorkflow=exports.CfnLifecyclePolicy=exports.CfnInfrastructureConfiguration=exports.CfnImageRecipe=exports.CfnImagePipeline=exports.CfnImage=exports.CfnDistributionConfiguration=exports.CfnContainerRecipe=exports.CfnComponent=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core/lib");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnComponent extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_imagebuilder.CfnComponent",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ImageBuilder::Component";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnComponentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnComponent(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnComponent(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnComponent.CFN_RESOURCE_TYPE_NAME}static arnForComponent(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_imagebuilder_IComponentRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForComponent),error}return resource.componentRef.componentArn}_changeDescription;_data;_description;_kmsKeyId;_name;_platform;_supportedOsVersions;tags;_tagsRaw;_uri;_version;cfnPropertyNames={changeDescription:"ChangeDescription",data:"Data",description:"Description",kmsKeyId:"KmsKeyId",name:"Name",platform:"Platform",supportedOsVersions:"SupportedOsVersions",tags:"Tags",uri:"Uri",version:"Version"};constructor(scope,id,props){super(scope,id,{type:CfnComponent.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_imagebuilder_CfnComponentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnComponent),error}cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"platform",this),cdk().requireProperty(props,"version",this),this._changeDescription=props.changeDescription,this._data=props.data,this._description=props.description,this._kmsKeyId=props.kmsKeyId,this._name=props.name,this._platform=props.platform,this._supportedOsVersions=props.supportedOsVersions,this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::ImageBuilder::Component",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._uri=props.uri,this._version=props.version}get componentRef(){return{componentArn:this.ref}}get changeDescription(){return this._changeDescription}set changeDescription(value){cdk().traceProperty(this.node,"ChangeDescription"),this._changeDescription=value}get data(){return this._data}set data(value){cdk().traceProperty(this.node,"Data"),this._data=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get kmsKeyId(){return this._kmsKeyId}set kmsKeyId(value){cdk().traceProperty(this.node,"KmsKeyId"),this._kmsKeyId=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get platform(){return this._platform}set platform(value){cdk().traceProperty(this.node,"Platform"),this._platform=value}get supportedOsVersions(){return this._supportedOsVersions}set supportedOsVersions(value){cdk().traceProperty(this.node,"SupportedOsVersions"),this._supportedOsVersions=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get uri(){return this._uri}set uri(value){cdk().traceProperty(this.node,"Uri"),this._uri=value}get version(){return this._version}set version(value){cdk().traceProperty(this.node,"Version"),this._version=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrEncrypted(){return this.getAtt("Encrypted")}get attrLatestVersion(){return this.getAtt("LatestVersion")}get attrLatestVersionArn(){return cdk().Token.asString(this.getAtt("LatestVersion.Arn",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionMajor(){return cdk().Token.asString(this.getAtt("LatestVersion.Major",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionMinor(){return cdk().Token.asString(this.getAtt("LatestVersion.Minor",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionPatch(){return cdk().Token.asString(this.getAtt("LatestVersion.Patch",cdk().ResolutionTypeHint.STRING))}get attrName(){return cdk().Token.asString(this.getAtt("Name",cdk().ResolutionTypeHint.STRING))}get attrType(){return cdk().Token.asString(this.getAtt("Type",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{changeDescription:this._changeDescription,data:this._data,description:this._description,kmsKeyId:this._kmsKeyId,name:this._name,platform:this._platform,supportedOsVersions:this._supportedOsVersions,tags:this.tags.renderTags(),uri:this._uri,version:this._version}}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",CfnComponent.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnComponentPropsToCloudFormation(props)}}exports.CfnComponent=CfnComponent;function CfnComponentLatestVersionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("major",cdk().validateString)(properties.major)),errors.collect(cdk().propertyValidator("minor",cdk().validateString)(properties.minor)),errors.collect(cdk().propertyValidator("patch",cdk().validateString)(properties.patch)),errors.wrap('supplied properties not correct for "LatestVersionProperty"')}function convertCfnComponentLatestVersionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentLatestVersionPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),Major:cdk().stringToCloudFormation(properties.major),Minor:cdk().stringToCloudFormation(properties.minor),Patch:cdk().stringToCloudFormation(properties.patch)}):properties}function CfnComponentLatestVersionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("major","Major",properties.Major!=null?cfn_parse().FromCloudFormation.getString(properties.Major):void 0),ret.addPropertyResult("minor","Minor",properties.Minor!=null?cfn_parse().FromCloudFormation.getString(properties.Minor):void 0),ret.addPropertyResult("patch","Patch",properties.Patch!=null?cfn_parse().FromCloudFormation.getString(properties.Patch):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("changeDescription",cdk().validateString)(properties.changeDescription)),errors.collect(cdk().propertyValidator("data",cdk().validateString)(properties.data)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("platform",cdk().requiredValidator)(properties.platform)),errors.collect(cdk().propertyValidator("platform",cdk().validateString)(properties.platform)),errors.collect(cdk().propertyValidator("supportedOsVersions",cdk().listValidator(cdk().validateString))(properties.supportedOsVersions)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("uri",cdk().validateString)(properties.uri)),errors.collect(cdk().propertyValidator("version",cdk().requiredValidator)(properties.version)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.wrap('supplied properties not correct for "CfnComponentProps"')}function convertCfnComponentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentPropsValidator(properties).assertSuccess(),{ChangeDescription:cdk().stringToCloudFormation(properties.changeDescription),Data:cdk().stringToCloudFormation(properties.data),Description:cdk().stringToCloudFormation(properties.description),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),Name:cdk().stringToCloudFormation(properties.name),Platform:cdk().stringToCloudFormation(properties.platform),SupportedOsVersions:cdk().listMapper(cdk().stringToCloudFormation)(properties.supportedOsVersions),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),Uri:cdk().stringToCloudFormation(properties.uri),Version:cdk().stringToCloudFormation(properties.version)}):properties}function CfnComponentPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("changeDescription","ChangeDescription",properties.ChangeDescription!=null?cfn_parse().FromCloudFormation.getString(properties.ChangeDescription):void 0),ret.addPropertyResult("data","Data",properties.Data!=null?cfn_parse().FromCloudFormation.getString(properties.Data):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("platform","Platform",properties.Platform!=null?cfn_parse().FromCloudFormation.getString(properties.Platform):void 0),ret.addPropertyResult("supportedOsVersions","SupportedOsVersions",properties.SupportedOsVersions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SupportedOsVersions):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("uri","Uri",properties.Uri!=null?cfn_parse().FromCloudFormation.getString(properties.Uri):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnContainerRecipe extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_imagebuilder.CfnContainerRecipe",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ImageBuilder::ContainerRecipe";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnContainerRecipePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnContainerRecipe(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnContainerRecipe(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnContainerRecipe.CFN_RESOURCE_TYPE_NAME}static arnForContainerRecipe(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_imagebuilder_IContainerRecipeRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForContainerRecipe),error}return resource.containerRecipeRef.containerRecipeArn}_components;_containerType;_description;_dockerfileTemplateData;_dockerfileTemplateUri;_imageOsVersionOverride;_instanceConfiguration;_kmsKeyId;_name;_parentImage;_platformOverride;tags;_tagsRaw;_targetRepository;_version;_workingDirectory;cfnPropertyNames={components:"Components",containerType:"ContainerType",description:"Description",dockerfileTemplateData:"DockerfileTemplateData",dockerfileTemplateUri:"DockerfileTemplateUri",imageOsVersionOverride:"ImageOsVersionOverride",instanceConfiguration:"InstanceConfiguration",kmsKeyId:"KmsKeyId",name:"Name",parentImage:"ParentImage",platformOverride:"PlatformOverride",tags:"Tags",targetRepository:"TargetRepository",version:"Version",workingDirectory:"WorkingDirectory"};constructor(scope,id,props){super(scope,id,{type:CfnContainerRecipe.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_imagebuilder_CfnContainerRecipeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnContainerRecipe),error}cdk().requireProperty(props,"containerType",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"parentImage",this),cdk().requireProperty(props,"targetRepository",this),cdk().requireProperty(props,"version",this),this._components=props.components,this._containerType=props.containerType,this._description=props.description,this._dockerfileTemplateData=props.dockerfileTemplateData,this._dockerfileTemplateUri=props.dockerfileTemplateUri,this._imageOsVersionOverride=props.imageOsVersionOverride,this._instanceConfiguration=props.instanceConfiguration,this._kmsKeyId=props.kmsKeyId,this._name=props.name,this._parentImage=props.parentImage,this._platformOverride=props.platformOverride,this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::ImageBuilder::ContainerRecipe",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._targetRepository=props.targetRepository,this._version=props.version,this._workingDirectory=props.workingDirectory}get containerRecipeRef(){return{containerRecipeArn:this.ref}}get components(){return this._components}set components(value){cdk().traceProperty(this.node,"Components"),this._components=value}get containerType(){return this._containerType}set containerType(value){cdk().traceProperty(this.node,"ContainerType"),this._containerType=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get dockerfileTemplateData(){return this._dockerfileTemplateData}set dockerfileTemplateData(value){cdk().traceProperty(this.node,"DockerfileTemplateData"),this._dockerfileTemplateData=value}get dockerfileTemplateUri(){return this._dockerfileTemplateUri}set dockerfileTemplateUri(value){cdk().traceProperty(this.node,"DockerfileTemplateUri"),this._dockerfileTemplateUri=value}get imageOsVersionOverride(){return this._imageOsVersionOverride}set imageOsVersionOverride(value){cdk().traceProperty(this.node,"ImageOsVersionOverride"),this._imageOsVersionOverride=value}get instanceConfiguration(){return this._instanceConfiguration}set instanceConfiguration(value){cdk().traceProperty(this.node,"InstanceConfiguration"),this._instanceConfiguration=value}get kmsKeyId(){return this._kmsKeyId}set kmsKeyId(value){cdk().traceProperty(this.node,"KmsKeyId"),this._kmsKeyId=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get parentImage(){return this._parentImage}set parentImage(value){cdk().traceProperty(this.node,"ParentImage"),this._parentImage=value}get platformOverride(){return this._platformOverride}set platformOverride(value){cdk().traceProperty(this.node,"PlatformOverride"),this._platformOverride=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get targetRepository(){return this._targetRepository}set targetRepository(value){cdk().traceProperty(this.node,"TargetRepository"),this._targetRepository=value}get version(){return this._version}set version(value){cdk().traceProperty(this.node,"Version"),this._version=value}get workingDirectory(){return this._workingDirectory}set workingDirectory(value){cdk().traceProperty(this.node,"WorkingDirectory"),this._workingDirectory=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrLatestVersion(){return this.getAtt("LatestVersion")}get attrLatestVersionArn(){return cdk().Token.asString(this.getAtt("LatestVersion.Arn",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionMajor(){return cdk().Token.asString(this.getAtt("LatestVersion.Major",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionMinor(){return cdk().Token.asString(this.getAtt("LatestVersion.Minor",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionPatch(){return cdk().Token.asString(this.getAtt("LatestVersion.Patch",cdk().ResolutionTypeHint.STRING))}get attrName(){return cdk().Token.asString(this.getAtt("Name",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{components:this._components,containerType:this._containerType,description:this._description,dockerfileTemplateData:this._dockerfileTemplateData,dockerfileTemplateUri:this._dockerfileTemplateUri,imageOsVersionOverride:this._imageOsVersionOverride,instanceConfiguration:this._instanceConfiguration,kmsKeyId:this._kmsKeyId,name:this._name,parentImage:this._parentImage,platformOverride:this._platformOverride,tags:this.tags.renderTags(),targetRepository:this._targetRepository,version:this._version,workingDirectory:this._workingDirectory}}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",CfnContainerRecipe.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnContainerRecipePropsToCloudFormation(props)}}exports.CfnContainerRecipe=CfnContainerRecipe;function CfnContainerRecipeEbsInstanceBlockDeviceSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.collect(cdk().propertyValidator("iops",cdk().validateNumber)(properties.iops)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("snapshotId",cdk().validateString)(properties.snapshotId)),errors.collect(cdk().propertyValidator("throughput",cdk().validateNumber)(properties.throughput)),errors.collect(cdk().propertyValidator("volumeSize",cdk().validateNumber)(properties.volumeSize)),errors.collect(cdk().propertyValidator("volumeType",cdk().validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsInstanceBlockDeviceSpecificationProperty"')}function convertCfnContainerRecipeEbsInstanceBlockDeviceSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerRecipeEbsInstanceBlockDeviceSpecificationPropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk().booleanToCloudFormation(properties.encrypted),Iops:cdk().numberToCloudFormation(properties.iops),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),SnapshotId:cdk().stringToCloudFormation(properties.snapshotId),Throughput:cdk().numberToCloudFormation(properties.throughput),VolumeSize:cdk().numberToCloudFormation(properties.volumeSize),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnContainerRecipeEbsInstanceBlockDeviceSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse().FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("throughput","Throughput",properties.Throughput!=null?cfn_parse().FromCloudFormation.getNumber(properties.Throughput):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerRecipeInstanceBlockDeviceMappingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deviceName",cdk().validateString)(properties.deviceName)),errors.collect(cdk().propertyValidator("ebs",CfnContainerRecipeEbsInstanceBlockDeviceSpecificationPropertyValidator)(properties.ebs)),errors.collect(cdk().propertyValidator("noDevice",cdk().validateString)(properties.noDevice)),errors.collect(cdk().propertyValidator("virtualName",cdk().validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "InstanceBlockDeviceMappingProperty"')}function convertCfnContainerRecipeInstanceBlockDeviceMappingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerRecipeInstanceBlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk().stringToCloudFormation(properties.deviceName),Ebs:convertCfnContainerRecipeEbsInstanceBlockDeviceSpecificationPropertyToCloudFormation(properties.ebs),NoDevice:cdk().stringToCloudFormation(properties.noDevice),VirtualName:cdk().stringToCloudFormation(properties.virtualName)}):properties}function CfnContainerRecipeInstanceBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",properties.DeviceName!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceName):void 0),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnContainerRecipeEbsInstanceBlockDeviceSpecificationPropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?cfn_parse().FromCloudFormation.getString(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse().FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerRecipeInstanceConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("blockDeviceMappings",cdk().listValidator(CfnContainerRecipeInstanceBlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk().propertyValidator("image",cdk().validateString)(properties.image)),errors.wrap('supplied properties not correct for "InstanceConfigurationProperty"')}function convertCfnContainerRecipeInstanceConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerRecipeInstanceConfigurationPropertyValidator(properties).assertSuccess(),{BlockDeviceMappings:cdk().listMapper(convertCfnContainerRecipeInstanceBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),Image:cdk().stringToCloudFormation(properties.image)}):properties}function CfnContainerRecipeInstanceConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse().FromCloudFormation.getArray(CfnContainerRecipeInstanceBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("image","Image",properties.Image!=null?cfn_parse().FromCloudFormation.getString(properties.Image):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerRecipeComponentParameterPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().listValidator(cdk().validateString))(properties.value)),errors.wrap('supplied properties not correct for "ComponentParameterProperty"')}function convertCfnContainerRecipeComponentParameterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerRecipeComponentParameterPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().listMapper(cdk().stringToCloudFormation)(properties.value)}):properties}function CfnContainerRecipeComponentParameterPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerRecipeComponentConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("componentArn",cdk().validateString)(properties.componentArn)),errors.collect(cdk().propertyValidator("parameters",cdk().listValidator(CfnContainerRecipeComponentParameterPropertyValidator))(properties.parameters)),errors.wrap('supplied properties not correct for "ComponentConfigurationProperty"')}function convertCfnContainerRecipeComponentConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerRecipeComponentConfigurationPropertyValidator(properties).assertSuccess(),{ComponentArn:cdk().stringToCloudFormation(properties.componentArn),Parameters:cdk().listMapper(convertCfnContainerRecipeComponentParameterPropertyToCloudFormation)(properties.parameters)}):properties}function CfnContainerRecipeComponentConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("componentArn","ComponentArn",properties.ComponentArn!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentArn):void 0),ret.addPropertyResult("parameters","Parameters",properties.Parameters!=null?cfn_parse().FromCloudFormation.getArray(CfnContainerRecipeComponentParameterPropertyFromCloudFormation)(properties.Parameters):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerRecipeTargetContainerRepositoryPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("repositoryName",cdk().validateString)(properties.repositoryName)),errors.collect(cdk().propertyValidator("service",cdk().validateString)(properties.service)),errors.wrap('supplied properties not correct for "TargetContainerRepositoryProperty"')}function convertCfnContainerRecipeTargetContainerRepositoryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerRecipeTargetContainerRepositoryPropertyValidator(properties).assertSuccess(),{RepositoryName:cdk().stringToCloudFormation(properties.repositoryName),Service:cdk().stringToCloudFormation(properties.service)}):properties}function CfnContainerRecipeTargetContainerRepositoryPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("repositoryName","RepositoryName",properties.RepositoryName!=null?cfn_parse().FromCloudFormation.getString(properties.RepositoryName):void 0),ret.addPropertyResult("service","Service",properties.Service!=null?cfn_parse().FromCloudFormation.getString(properties.Service):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerRecipeLatestVersionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("major",cdk().validateString)(properties.major)),errors.collect(cdk().propertyValidator("minor",cdk().validateString)(properties.minor)),errors.collect(cdk().propertyValidator("patch",cdk().validateString)(properties.patch)),errors.wrap('supplied properties not correct for "LatestVersionProperty"')}function convertCfnContainerRecipeLatestVersionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerRecipeLatestVersionPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),Major:cdk().stringToCloudFormation(properties.major),Minor:cdk().stringToCloudFormation(properties.minor),Patch:cdk().stringToCloudFormation(properties.patch)}):properties}function CfnContainerRecipeLatestVersionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("major","Major",properties.Major!=null?cfn_parse().FromCloudFormation.getString(properties.Major):void 0),ret.addPropertyResult("minor","Minor",properties.Minor!=null?cfn_parse().FromCloudFormation.getString(properties.Minor):void 0),ret.addPropertyResult("patch","Patch",properties.Patch!=null?cfn_parse().FromCloudFormation.getString(properties.Patch):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerRecipePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("components",cdk().listValidator(CfnContainerRecipeComponentConfigurationPropertyValidator))(properties.components)),errors.collect(cdk().propertyValidator("containerType",cdk().requiredValidator)(properties.containerType)),errors.collect(cdk().propertyValidator("containerType",cdk().validateString)(properties.containerType)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("dockerfileTemplateData",cdk().validateString)(properties.dockerfileTemplateData)),errors.collect(cdk().propertyValidator("dockerfileTemplateUri",cdk().validateString)(properties.dockerfileTemplateUri)),errors.collect(cdk().propertyValidator("imageOsVersionOverride",cdk().validateString)(properties.imageOsVersionOverride)),errors.collect(cdk().propertyValidator("instanceConfiguration",CfnContainerRecipeInstanceConfigurationPropertyValidator)(properties.instanceConfiguration)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("parentImage",cdk().requiredValidator)(properties.parentImage)),errors.collect(cdk().propertyValidator("parentImage",cdk().validateString)(properties.parentImage)),errors.collect(cdk().propertyValidator("platformOverride",cdk().validateString)(properties.platformOverride)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("targetRepository",cdk().requiredValidator)(properties.targetRepository)),errors.collect(cdk().propertyValidator("targetRepository",CfnContainerRecipeTargetContainerRepositoryPropertyValidator)(properties.targetRepository)),errors.collect(cdk().propertyValidator("version",cdk().requiredValidator)(properties.version)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.collect(cdk().propertyValidator("workingDirectory",cdk().validateString)(properties.workingDirectory)),errors.wrap('supplied properties not correct for "CfnContainerRecipeProps"')}function convertCfnContainerRecipePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerRecipePropsValidator(properties).assertSuccess(),{Components:cdk().listMapper(convertCfnContainerRecipeComponentConfigurationPropertyToCloudFormation)(properties.components),ContainerType:cdk().stringToCloudFormation(properties.containerType),Description:cdk().stringToCloudFormation(properties.description),DockerfileTemplateData:cdk().stringToCloudFormation(properties.dockerfileTemplateData),DockerfileTemplateUri:cdk().stringToCloudFormation(properties.dockerfileTemplateUri),ImageOsVersionOverride:cdk().stringToCloudFormation(properties.imageOsVersionOverride),InstanceConfiguration:convertCfnContainerRecipeInstanceConfigurationPropertyToCloudFormation(properties.instanceConfiguration),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),Name:cdk().stringToCloudFormation(properties.name),ParentImage:cdk().stringToCloudFormation(properties.parentImage),PlatformOverride:cdk().stringToCloudFormation(properties.platformOverride),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),TargetRepository:convertCfnContainerRecipeTargetContainerRepositoryPropertyToCloudFormation(properties.targetRepository),Version:cdk().stringToCloudFormation(properties.version),WorkingDirectory:cdk().stringToCloudFormation(properties.workingDirectory)}):properties}function CfnContainerRecipePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("components","Components",properties.Components!=null?cfn_parse().FromCloudFormation.getArray(CfnContainerRecipeComponentConfigurationPropertyFromCloudFormation)(properties.Components):void 0),ret.addPropertyResult("containerType","ContainerType",properties.ContainerType!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerType):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("dockerfileTemplateData","DockerfileTemplateData",properties.DockerfileTemplateData!=null?cfn_parse().FromCloudFormation.getString(properties.DockerfileTemplateData):void 0),ret.addPropertyResult("dockerfileTemplateUri","DockerfileTemplateUri",properties.DockerfileTemplateUri!=null?cfn_parse().FromCloudFormation.getString(properties.DockerfileTemplateUri):void 0),ret.addPropertyResult("imageOsVersionOverride","ImageOsVersionOverride",properties.ImageOsVersionOverride!=null?cfn_parse().FromCloudFormation.getString(properties.ImageOsVersionOverride):void 0),ret.addPropertyResult("instanceConfiguration","InstanceConfiguration",properties.InstanceConfiguration!=null?CfnContainerRecipeInstanceConfigurationPropertyFromCloudFormation(properties.InstanceConfiguration):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("parentImage","ParentImage",properties.ParentImage!=null?cfn_parse().FromCloudFormation.getString(properties.ParentImage):void 0),ret.addPropertyResult("platformOverride","PlatformOverride",properties.PlatformOverride!=null?cfn_parse().FromCloudFormation.getString(properties.PlatformOverride):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("targetRepository","TargetRepository",properties.TargetRepository!=null?CfnContainerRecipeTargetContainerRepositoryPropertyFromCloudFormation(properties.TargetRepository):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addPropertyResult("workingDirectory","WorkingDirectory",properties.WorkingDirectory!=null?cfn_parse().FromCloudFormation.getString(properties.WorkingDirectory):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDistributionConfiguration extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_imagebuilder.CfnDistributionConfiguration",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ImageBuilder::DistributionConfiguration";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDistributionConfigurationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDistributionConfiguration(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnDistributionConfiguration(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDistributionConfiguration.CFN_RESOURCE_TYPE_NAME}static arnForDistributionConfiguration(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_imagebuilder_IDistributionConfigurationRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDistributionConfiguration),error}return resource.distributionConfigurationRef.distributionConfigurationArn}_description;_distributions;_name;tags;_tagsRaw;cfnPropertyNames={description:"Description",distributions:"Distributions",name:"Name",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnDistributionConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_imagebuilder_CfnDistributionConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDistributionConfiguration),error}cdk().requireProperty(props,"distributions",this),cdk().requireProperty(props,"name",this),this._description=props.description,this._distributions=props.distributions,this._name=props.name,this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::ImageBuilder::DistributionConfiguration",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get distributionConfigurationRef(){return{distributionConfigurationArn:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get distributions(){return this._distributions}set distributions(value){cdk().traceProperty(this.node,"Distributions"),this._distributions=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrName(){return cdk().Token.asString(this.getAtt("Name",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,distributions:this._distributions,name:this._name,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",CfnDistributionConfiguration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDistributionConfigurationPropsToCloudFormation(props)}}exports.CfnDistributionConfiguration=CfnDistributionConfiguration;function CfnDistributionConfigurationFastLaunchLaunchTemplateSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("launchTemplateId",cdk().validateString)(properties.launchTemplateId)),errors.collect(cdk().propertyValidator("launchTemplateName",cdk().validateString)(properties.launchTemplateName)),errors.collect(cdk().propertyValidator("launchTemplateVersion",cdk().validateString)(properties.launchTemplateVersion)),errors.wrap('supplied properties not correct for "FastLaunchLaunchTemplateSpecificationProperty"')}function convertCfnDistributionConfigurationFastLaunchLaunchTemplateSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConfigurationFastLaunchLaunchTemplateSpecificationPropertyValidator(properties).assertSuccess(),{LaunchTemplateId:cdk().stringToCloudFormation(properties.launchTemplateId),LaunchTemplateName:cdk().stringToCloudFormation(properties.launchTemplateName),LaunchTemplateVersion:cdk().stringToCloudFormation(properties.launchTemplateVersion)}):properties}function CfnDistributionConfigurationFastLaunchLaunchTemplateSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("launchTemplateVersion","LaunchTemplateVersion",properties.LaunchTemplateVersion!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateVersion):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionConfigurationFastLaunchSnapshotConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("targetResourceCount",cdk().validateNumber)(properties.targetResourceCount)),errors.wrap('supplied properties not correct for "FastLaunchSnapshotConfigurationProperty"')}function convertCfnDistributionConfigurationFastLaunchSnapshotConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConfigurationFastLaunchSnapshotConfigurationPropertyValidator(properties).assertSuccess(),{TargetResourceCount:cdk().numberToCloudFormation(properties.targetResourceCount)}):properties}function CfnDistributionConfigurationFastLaunchSnapshotConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("targetResourceCount","TargetResourceCount",properties.TargetResourceCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.TargetResourceCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionConfigurationFastLaunchConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("accountId",cdk().validateString)(properties.accountId)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("launchTemplate",CfnDistributionConfigurationFastLaunchLaunchTemplateSpecificationPropertyValidator)(properties.launchTemplate)),errors.collect(cdk().propertyValidator("maxParallelLaunches",cdk().validateNumber)(properties.maxParallelLaunches)),errors.collect(cdk().propertyValidator("snapshotConfiguration",CfnDistributionConfigurationFastLaunchSnapshotConfigurationPropertyValidator)(properties.snapshotConfiguration)),errors.wrap('supplied properties not correct for "FastLaunchConfigurationProperty"')}function convertCfnDistributionConfigurationFastLaunchConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConfigurationFastLaunchConfigurationPropertyValidator(properties).assertSuccess(),{AccountId:cdk().stringToCloudFormation(properties.accountId),Enabled:cdk().booleanToCloudFormation(properties.enabled),LaunchTemplate:convertCfnDistributionConfigurationFastLaunchLaunchTemplateSpecificationPropertyToCloudFormation(properties.launchTemplate),MaxParallelLaunches:cdk().numberToCloudFormation(properties.maxParallelLaunches),SnapshotConfiguration:convertCfnDistributionConfigurationFastLaunchSnapshotConfigurationPropertyToCloudFormation(properties.snapshotConfiguration)}):properties}function CfnDistributionConfigurationFastLaunchConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("accountId","AccountId",properties.AccountId!=null?cfn_parse().FromCloudFormation.getString(properties.AccountId):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("launchTemplate","LaunchTemplate",properties.LaunchTemplate!=null?CfnDistributionConfigurationFastLaunchLaunchTemplateSpecificationPropertyFromCloudFormation(properties.LaunchTemplate):void 0),ret.addPropertyResult("maxParallelLaunches","MaxParallelLaunches",properties.MaxParallelLaunches!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxParallelLaunches):void 0),ret.addPropertyResult("snapshotConfiguration","SnapshotConfiguration",properties.SnapshotConfiguration!=null?CfnDistributionConfigurationFastLaunchSnapshotConfigurationPropertyFromCloudFormation(properties.SnapshotConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionConfigurationLaunchTemplateConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("accountId",cdk().validateString)(properties.accountId)),errors.collect(cdk().propertyValidator("launchTemplateId",cdk().validateString)(properties.launchTemplateId)),errors.collect(cdk().propertyValidator("setDefaultVersion",cdk().validateBoolean)(properties.setDefaultVersion)),errors.wrap('supplied properties not correct for "LaunchTemplateConfigurationProperty"')}function convertCfnDistributionConfigurationLaunchTemplateConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConfigurationLaunchTemplateConfigurationPropertyValidator(properties).assertSuccess(),{AccountId:cdk().stringToCloudFormation(properties.accountId),LaunchTemplateId:cdk().stringToCloudFormation(properties.launchTemplateId),SetDefaultVersion:cdk().booleanToCloudFormation(properties.setDefaultVersion)}):properties}function CfnDistributionConfigurationLaunchTemplateConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("accountId","AccountId",properties.AccountId!=null?cfn_parse().FromCloudFormation.getString(properties.AccountId):void 0),ret.addPropertyResult("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("setDefaultVersion","SetDefaultVersion",properties.SetDefaultVersion!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SetDefaultVersion):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionConfigurationSsmParameterConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("amiAccountId",cdk().validateString)(properties.amiAccountId)),errors.collect(cdk().propertyValidator("dataType",cdk().validateString)(properties.dataType)),errors.collect(cdk().propertyValidator("parameterName",cdk().requiredValidator)(properties.parameterName)),errors.collect(cdk().propertyValidator("parameterName",cdk().validateString)(properties.parameterName)),errors.wrap('supplied properties not correct for "SsmParameterConfigurationProperty"')}function convertCfnDistributionConfigurationSsmParameterConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConfigurationSsmParameterConfigurationPropertyValidator(properties).assertSuccess(),{AmiAccountId:cdk().stringToCloudFormation(properties.amiAccountId),DataType:cdk().stringToCloudFormation(properties.dataType),ParameterName:cdk().stringToCloudFormation(properties.parameterName)}):properties}function CfnDistributionConfigurationSsmParameterConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("amiAccountId","AmiAccountId",properties.AmiAccountId!=null?cfn_parse().FromCloudFormation.getString(properties.AmiAccountId):void 0),ret.addPropertyResult("dataType","DataType",properties.DataType!=null?cfn_parse().FromCloudFormation.getString(properties.DataType):void 0),ret.addPropertyResult("parameterName","ParameterName",properties.ParameterName!=null?cfn_parse().FromCloudFormation.getString(properties.ParameterName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionConfigurationDistributionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("amiDistributionConfiguration",cdk().validateObject)(properties.amiDistributionConfiguration)),errors.collect(cdk().propertyValidator("containerDistributionConfiguration",cdk().validateObject)(properties.containerDistributionConfiguration)),errors.collect(cdk().propertyValidator("fastLaunchConfigurations",cdk().listValidator(CfnDistributionConfigurationFastLaunchConfigurationPropertyValidator))(properties.fastLaunchConfigurations)),errors.collect(cdk().propertyValidator("launchTemplateConfigurations",cdk().listValidator(CfnDistributionConfigurationLaunchTemplateConfigurationPropertyValidator))(properties.launchTemplateConfigurations)),errors.collect(cdk().propertyValidator("licenseConfigurationArns",cdk().listValidator(cdk().validateString))(properties.licenseConfigurationArns)),errors.collect(cdk().propertyValidator("region",cdk().requiredValidator)(properties.region)),errors.collect(cdk().propertyValidator("region",cdk().validateString)(properties.region)),errors.collect(cdk().propertyValidator("ssmParameterConfigurations",cdk().listValidator(CfnDistributionConfigurationSsmParameterConfigurationPropertyValidator))(properties.ssmParameterConfigurations)),errors.wrap('supplied properties not correct for "DistributionProperty"')}function convertCfnDistributionConfigurationDistributionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConfigurationDistributionPropertyValidator(properties).assertSuccess(),{AmiDistributionConfiguration:cdk().objectToCloudFormation(properties.amiDistributionConfiguration),ContainerDistributionConfiguration:cdk().objectToCloudFormation(properties.containerDistributionConfiguration),FastLaunchConfigurations:cdk().listMapper(convertCfnDistributionConfigurationFastLaunchConfigurationPropertyToCloudFormation)(properties.fastLaunchConfigurations),LaunchTemplateConfigurations:cdk().listMapper(convertCfnDistributionConfigurationLaunchTemplateConfigurationPropertyToCloudFormation)(properties.launchTemplateConfigurations),LicenseConfigurationArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.licenseConfigurationArns),Region:cdk().stringToCloudFormation(properties.region),SsmParameterConfigurations:cdk().listMapper(convertCfnDistributionConfigurationSsmParameterConfigurationPropertyToCloudFormation)(properties.ssmParameterConfigurations)}):properties}function CfnDistributionConfigurationDistributionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("amiDistributionConfiguration","AmiDistributionConfiguration",properties.AmiDistributionConfiguration!=null?cfn_parse().FromCloudFormation.getAny(properties.AmiDistributionConfiguration):void 0),ret.addPropertyResult("containerDistributionConfiguration","ContainerDistributionConfiguration",properties.ContainerDistributionConfiguration!=null?cfn_parse().FromCloudFormation.getAny(properties.ContainerDistributionConfiguration):void 0),ret.addPropertyResult("fastLaunchConfigurations","FastLaunchConfigurations",properties.FastLaunchConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionConfigurationFastLaunchConfigurationPropertyFromCloudFormation)(properties.FastLaunchConfigurations):void 0),ret.addPropertyResult("launchTemplateConfigurations","LaunchTemplateConfigurations",properties.LaunchTemplateConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionConfigurationLaunchTemplateConfigurationPropertyFromCloudFormation)(properties.LaunchTemplateConfigurations):void 0),ret.addPropertyResult("licenseConfigurationArns","LicenseConfigurationArns",properties.LicenseConfigurationArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.LicenseConfigurationArns):void 0),ret.addPropertyResult("region","Region",properties.Region!=null?cfn_parse().FromCloudFormation.getString(properties.Region):void 0),ret.addPropertyResult("ssmParameterConfigurations","SsmParameterConfigurations",properties.SsmParameterConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionConfigurationSsmParameterConfigurationPropertyFromCloudFormation)(properties.SsmParameterConfigurations):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionConfigurationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("distributions",cdk().requiredValidator)(properties.distributions)),errors.collect(cdk().propertyValidator("distributions",cdk().listValidator(CfnDistributionConfigurationDistributionPropertyValidator))(properties.distributions)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDistributionConfigurationProps"')}function convertCfnDistributionConfigurationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConfigurationPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),Distributions:cdk().listMapper(convertCfnDistributionConfigurationDistributionPropertyToCloudFormation)(properties.distributions),Name:cdk().stringToCloudFormation(properties.name),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags)}):properties}function CfnDistributionConfigurationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("distributions","Distributions",properties.Distributions!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionConfigurationDistributionPropertyFromCloudFormation)(properties.Distributions):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionConfigurationLaunchPermissionConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("organizationArns",cdk().listValidator(cdk().validateString))(properties.organizationArns)),errors.collect(cdk().propertyValidator("organizationalUnitArns",cdk().listValidator(cdk().validateString))(properties.organizationalUnitArns)),errors.collect(cdk().propertyValidator("userGroups",cdk().listValidator(cdk().validateString))(properties.userGroups)),errors.collect(cdk().propertyValidator("userIds",cdk().listValidator(cdk().validateString))(properties.userIds)),errors.wrap('supplied properties not correct for "LaunchPermissionConfigurationProperty"')}function convertCfnDistributionConfigurationLaunchPermissionConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConfigurationLaunchPermissionConfigurationPropertyValidator(properties).assertSuccess(),{OrganizationArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.organizationArns),OrganizationalUnitArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.organizationalUnitArns),UserGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.userGroups),UserIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.userIds)}):properties}function CfnDistributionConfigurationLaunchPermissionConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("organizationalUnitArns","OrganizationalUnitArns",properties.OrganizationalUnitArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.OrganizationalUnitArns):void 0),ret.addPropertyResult("organizationArns","OrganizationArns",properties.OrganizationArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.OrganizationArns):void 0),ret.addPropertyResult("userGroups","UserGroups",properties.UserGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.UserGroups):void 0),ret.addPropertyResult("userIds","UserIds",properties.UserIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.UserIds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionConfigurationAmiDistributionConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("amiTags",cdk().hashValidator(cdk().validateString))(properties.amiTags)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("launchPermissionConfiguration",CfnDistributionConfigurationLaunchPermissionConfigurationPropertyValidator)(properties.launchPermissionConfiguration)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("targetAccountIds",cdk().listValidator(cdk().validateString))(properties.targetAccountIds)),errors.wrap('supplied properties not correct for "AmiDistributionConfigurationProperty"')}function convertCfnDistributionConfigurationAmiDistributionConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConfigurationAmiDistributionConfigurationPropertyValidator(properties).assertSuccess(),{AmiTags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.amiTags),Description:cdk().stringToCloudFormation(properties.description),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),LaunchPermissionConfiguration:convertCfnDistributionConfigurationLaunchPermissionConfigurationPropertyToCloudFormation(properties.launchPermissionConfiguration),Name:cdk().stringToCloudFormation(properties.name),TargetAccountIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.targetAccountIds)}):properties}function CfnDistributionConfigurationAmiDistributionConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("amiTags","AmiTags",properties.AmiTags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.AmiTags):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("launchPermissionConfiguration","LaunchPermissionConfiguration",properties.LaunchPermissionConfiguration!=null?CfnDistributionConfigurationLaunchPermissionConfigurationPropertyFromCloudFormation(properties.LaunchPermissionConfiguration):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("targetAccountIds","TargetAccountIds",properties.TargetAccountIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TargetAccountIds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionConfigurationTargetContainerRepositoryPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("repositoryName",cdk().validateString)(properties.repositoryName)),errors.collect(cdk().propertyValidator("service",cdk().validateString)(properties.service)),errors.wrap('supplied properties not correct for "TargetContainerRepositoryProperty"')}function convertCfnDistributionConfigurationTargetContainerRepositoryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConfigurationTargetContainerRepositoryPropertyValidator(properties).assertSuccess(),{RepositoryName:cdk().stringToCloudFormation(properties.repositoryName),Service:cdk().stringToCloudFormation(properties.service)}):properties}function CfnDistributionConfigurationTargetContainerRepositoryPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("repositoryName","RepositoryName",properties.RepositoryName!=null?cfn_parse().FromCloudFormation.getString(properties.RepositoryName):void 0),ret.addPropertyResult("service","Service",properties.Service!=null?cfn_parse().FromCloudFormation.getString(properties.Service):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionConfigurationContainerDistributionConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("containerTags",cdk().listValidator(cdk().validateString))(properties.containerTags)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("targetRepository",CfnDistributionConfigurationTargetContainerRepositoryPropertyValidator)(properties.targetRepository)),errors.wrap('supplied properties not correct for "ContainerDistributionConfigurationProperty"')}function convertCfnDistributionConfigurationContainerDistributionConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionConfigurationContainerDistributionConfigurationPropertyValidator(properties).assertSuccess(),{ContainerTags:cdk().listMapper(cdk().stringToCloudFormation)(properties.containerTags),Description:cdk().stringToCloudFormation(properties.description),TargetRepository:convertCfnDistributionConfigurationTargetContainerRepositoryPropertyToCloudFormation(properties.targetRepository)}):properties}function CfnDistributionConfigurationContainerDistributionConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("containerTags","ContainerTags",properties.ContainerTags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ContainerTags):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("targetRepository","TargetRepository",properties.TargetRepository!=null?CfnDistributionConfigurationTargetContainerRepositoryPropertyFromCloudFormation(properties.TargetRepository):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnImage extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_imagebuilder.CfnImage",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ImageBuilder::Image";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnImagePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnImage(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnImage(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnImage.CFN_RESOURCE_TYPE_NAME}static arnForImage(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_imagebuilder_IImageRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForImage),error}return resource.imageRef.imageArn}_containerRecipeArn;_deletionSettings;_distributionConfigurationArn;_enhancedImageMetadataEnabled;_executionRole;_imagePipelineExecutionSettings;_imageRecipeArn;_imageScanningConfiguration;_imageTestsConfiguration;_infrastructureConfigurationArn;_loggingConfiguration;tags;_tagsRaw;_workflows;cfnPropertyNames={containerRecipeArn:"ContainerRecipeArn",deletionSettings:"DeletionSettings",distributionConfigurationArn:"DistributionConfigurationArn",enhancedImageMetadataEnabled:"EnhancedImageMetadataEnabled",executionRole:"ExecutionRole",imagePipelineExecutionSettings:"ImagePipelineExecutionSettings",imageRecipeArn:"ImageRecipeArn",imageScanningConfiguration:"ImageScanningConfiguration",imageTestsConfiguration:"ImageTestsConfiguration",infrastructureConfigurationArn:"InfrastructureConfigurationArn",loggingConfiguration:"LoggingConfiguration",tags:"Tags",workflows:"Workflows"};constructor(scope,id,props={}){super(scope,id,{type:CfnImage.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_imagebuilder_CfnImageProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnImage),error}this._containerRecipeArn=props.containerRecipeArn,this._deletionSettings=props.deletionSettings,this._distributionConfigurationArn=cdk().getRefProperty(props.distributionConfigurationArn?.distributionConfigurationRef,"distributionConfigurationArn")??cdk().ensureStringOrUndefined(props.distributionConfigurationArn,"distributionConfigurationArn","imagebuilder.IDistributionConfigurationRef | string"),this._enhancedImageMetadataEnabled=props.enhancedImageMetadataEnabled,this._executionRole=props.executionRole,this._imagePipelineExecutionSettings=props.imagePipelineExecutionSettings,this._imageRecipeArn=cdk().getRefProperty(props.imageRecipeArn?.imageRecipeRef,"imageRecipeArn")??cdk().ensureStringOrUndefined(props.imageRecipeArn,"imageRecipeArn","imagebuilder.IImageRecipeRef | string"),this._imageScanningConfiguration=props.imageScanningConfiguration,this._imageTestsConfiguration=props.imageTestsConfiguration,this._infrastructureConfigurationArn=cdk().getRefProperty(props.infrastructureConfigurationArn?.infrastructureConfigurationRef,"infrastructureConfigurationArn")??cdk().ensureStringOrUndefined(props.infrastructureConfigurationArn,"infrastructureConfigurationArn","imagebuilder.IInfrastructureConfigurationRef | string"),this._loggingConfiguration=props.loggingConfiguration,this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::ImageBuilder::Image",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._workflows=props.workflows}get imageRef(){return{imageArn:this.ref}}get containerRecipeArn(){return this._containerRecipeArn}set containerRecipeArn(value){cdk().traceProperty(this.node,"ContainerRecipeArn"),this._containerRecipeArn=value}get deletionSettings(){return this._deletionSettings}set deletionSettings(value){cdk().traceProperty(this.node,"DeletionSettings"),this._deletionSettings=value}get distributionConfigurationArn(){return this._distributionConfigurationArn}set distributionConfigurationArn(value){cdk().traceProperty(this.node,"DistributionConfigurationArn"),this._distributionConfigurationArn=value}get enhancedImageMetadataEnabled(){return this._enhancedImageMetadataEnabled}set enhancedImageMetadataEnabled(value){cdk().traceProperty(this.node,"EnhancedImageMetadataEnabled"),this._enhancedImageMetadataEnabled=value}get executionRole(){return this._executionRole}set executionRole(value){cdk().traceProperty(this.node,"ExecutionRole"),this._executionRole=value}get imagePipelineExecutionSettings(){return this._imagePipelineExecutionSettings}set imagePipelineExecutionSettings(value){cdk().traceProperty(this.node,"ImagePipelineExecutionSettings"),this._imagePipelineExecutionSettings=value}get imageRecipeArn(){return this._imageRecipeArn}set imageRecipeArn(value){cdk().traceProperty(this.node,"ImageRecipeArn"),this._imageRecipeArn=value}get imageScanningConfiguration(){return this._imageScanningConfiguration}set imageScanningConfiguration(value){cdk().traceProperty(this.node,"ImageScanningConfiguration"),this._imageScanningConfiguration=value}get imageTestsConfiguration(){return this._imageTestsConfiguration}set imageTestsConfiguration(value){cdk().traceProperty(this.node,"ImageTestsConfiguration"),this._imageTestsConfiguration=value}get infrastructureConfigurationArn(){return this._infrastructureConfigurationArn}set infrastructureConfigurationArn(value){cdk().traceProperty(this.node,"InfrastructureConfigurationArn"),this._infrastructureConfigurationArn=value}get loggingConfiguration(){return this._loggingConfiguration}set loggingConfiguration(value){cdk().traceProperty(this.node,"LoggingConfiguration"),this._loggingConfiguration=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get workflows(){return this._workflows}set workflows(value){cdk().traceProperty(this.node,"Workflows"),this._workflows=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrImageId(){return cdk().Token.asString(this.getAtt("ImageId",cdk().ResolutionTypeHint.STRING))}get attrImageUri(){return cdk().Token.asString(this.getAtt("ImageUri",cdk().ResolutionTypeHint.STRING))}get attrLatestVersion(){return this.getAtt("LatestVersion")}get attrLatestVersionArn(){return cdk().Token.asString(this.getAtt("LatestVersion.Arn",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionMajor(){return cdk().Token.asString(this.getAtt("LatestVersion.Major",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionMinor(){return cdk().Token.asString(this.getAtt("LatestVersion.Minor",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionPatch(){return cdk().Token.asString(this.getAtt("LatestVersion.Patch",cdk().ResolutionTypeHint.STRING))}get attrName(){return cdk().Token.asString(this.getAtt("Name",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{containerRecipeArn:this._containerRecipeArn,deletionSettings:this._deletionSettings,distributionConfigurationArn:this._distributionConfigurationArn,enhancedImageMetadataEnabled:this._enhancedImageMetadataEnabled,executionRole:this._executionRole,imagePipelineExecutionSettings:this._imagePipelineExecutionSettings,imageRecipeArn:this._imageRecipeArn,imageScanningConfiguration:this._imageScanningConfiguration,imageTestsConfiguration:this._imageTestsConfiguration,infrastructureConfigurationArn:this._infrastructureConfigurationArn,loggingConfiguration:this._loggingConfiguration,tags:this.tags.renderTags(),workflows:this._workflows}}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",CfnImage.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnImagePropsToCloudFormation(props)}}exports.CfnImage=CfnImage;function CfnImageEcrConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("containerTags",cdk().listValidator(cdk().validateString))(properties.containerTags)),errors.collect(cdk().propertyValidator("repositoryName",cdk().validateString)(properties.repositoryName)),errors.wrap('supplied properties not correct for "EcrConfigurationProperty"')}function convertCfnImageEcrConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageEcrConfigurationPropertyValidator(properties).assertSuccess(),{ContainerTags:cdk().listMapper(cdk().stringToCloudFormation)(properties.containerTags),RepositoryName:cdk().stringToCloudFormation(properties.repositoryName)}):properties}function CfnImageEcrConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("containerTags","ContainerTags",properties.ContainerTags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ContainerTags):void 0),ret.addPropertyResult("repositoryName","RepositoryName",properties.RepositoryName!=null?cfn_parse().FromCloudFormation.getString(properties.RepositoryName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageImageScanningConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("ecrConfiguration",CfnImageEcrConfigurationPropertyValidator)(properties.ecrConfiguration)),errors.collect(cdk().propertyValidator("imageScanningEnabled",cdk().validateBoolean)(properties.imageScanningEnabled)),errors.wrap('supplied properties not correct for "ImageScanningConfigurationProperty"')}function convertCfnImageImageScanningConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageImageScanningConfigurationPropertyValidator(properties).assertSuccess(),{EcrConfiguration:convertCfnImageEcrConfigurationPropertyToCloudFormation(properties.ecrConfiguration),ImageScanningEnabled:cdk().booleanToCloudFormation(properties.imageScanningEnabled)}):properties}function CfnImageImageScanningConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("ecrConfiguration","EcrConfiguration",properties.EcrConfiguration!=null?CfnImageEcrConfigurationPropertyFromCloudFormation(properties.EcrConfiguration):void 0),ret.addPropertyResult("imageScanningEnabled","ImageScanningEnabled",properties.ImageScanningEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ImageScanningEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageImageTestsConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("imageTestsEnabled",cdk().validateBoolean)(properties.imageTestsEnabled)),errors.collect(cdk().propertyValidator("timeoutMinutes",cdk().validateNumber)(properties.timeoutMinutes)),errors.wrap('supplied properties not correct for "ImageTestsConfigurationProperty"')}function convertCfnImageImageTestsConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageImageTestsConfigurationPropertyValidator(properties).assertSuccess(),{ImageTestsEnabled:cdk().booleanToCloudFormation(properties.imageTestsEnabled),TimeoutMinutes:cdk().numberToCloudFormation(properties.timeoutMinutes)}):properties}function CfnImageImageTestsConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("imageTestsEnabled","ImageTestsEnabled",properties.ImageTestsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ImageTestsEnabled):void 0),ret.addPropertyResult("timeoutMinutes","TimeoutMinutes",properties.TimeoutMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutMinutes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageWorkflowParameterPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().listValidator(cdk().validateString))(properties.value)),errors.wrap('supplied properties not correct for "WorkflowParameterProperty"')}function convertCfnImageWorkflowParameterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageWorkflowParameterPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().listMapper(cdk().stringToCloudFormation)(properties.value)}):properties}function CfnImageWorkflowParameterPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageWorkflowConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("onFailure",cdk().validateString)(properties.onFailure)),errors.collect(cdk().propertyValidator("parallelGroup",cdk().validateString)(properties.parallelGroup)),errors.collect(cdk().propertyValidator("parameters",cdk().listValidator(CfnImageWorkflowParameterPropertyValidator))(properties.parameters)),errors.collect(cdk().propertyValidator("workflowArn",cdk().validateString)(properties.workflowArn)),errors.wrap('supplied properties not correct for "WorkflowConfigurationProperty"')}function convertCfnImageWorkflowConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageWorkflowConfigurationPropertyValidator(properties).assertSuccess(),{OnFailure:cdk().stringToCloudFormation(properties.onFailure),ParallelGroup:cdk().stringToCloudFormation(properties.parallelGroup),Parameters:cdk().listMapper(convertCfnImageWorkflowParameterPropertyToCloudFormation)(properties.parameters),WorkflowArn:cdk().stringToCloudFormation(properties.workflowArn)}):properties}function CfnImageWorkflowConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("onFailure","OnFailure",properties.OnFailure!=null?cfn_parse().FromCloudFormation.getString(properties.OnFailure):void 0),ret.addPropertyResult("parallelGroup","ParallelGroup",properties.ParallelGroup!=null?cfn_parse().FromCloudFormation.getString(properties.ParallelGroup):void 0),ret.addPropertyResult("parameters","Parameters",properties.Parameters!=null?cfn_parse().FromCloudFormation.getArray(CfnImageWorkflowParameterPropertyFromCloudFormation)(properties.Parameters):void 0),ret.addPropertyResult("workflowArn","WorkflowArn",properties.WorkflowArn!=null?cfn_parse().FromCloudFormation.getString(properties.WorkflowArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageImagePipelineExecutionSettingsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deploymentId",cdk().validateString)(properties.deploymentId)),errors.collect(cdk().propertyValidator("onUpdate",cdk().validateBoolean)(properties.onUpdate)),errors.wrap('supplied properties not correct for "ImagePipelineExecutionSettingsProperty"')}function convertCfnImageImagePipelineExecutionSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageImagePipelineExecutionSettingsPropertyValidator(properties).assertSuccess(),{DeploymentId:cdk().stringToCloudFormation(properties.deploymentId),OnUpdate:cdk().booleanToCloudFormation(properties.onUpdate)}):properties}function CfnImageImagePipelineExecutionSettingsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deploymentId","DeploymentId",properties.DeploymentId!=null?cfn_parse().FromCloudFormation.getString(properties.DeploymentId):void 0),ret.addPropertyResult("onUpdate","OnUpdate",properties.OnUpdate!=null?cfn_parse().FromCloudFormation.getBoolean(properties.OnUpdate):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageDeletionSettingsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("executionRole",cdk().requiredValidator)(properties.executionRole)),errors.collect(cdk().propertyValidator("executionRole",cdk().validateString)(properties.executionRole)),errors.wrap('supplied properties not correct for "DeletionSettingsProperty"')}function convertCfnImageDeletionSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageDeletionSettingsPropertyValidator(properties).assertSuccess(),{ExecutionRole:cdk().stringToCloudFormation(properties.executionRole)}):properties}function CfnImageDeletionSettingsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("executionRole","ExecutionRole",properties.ExecutionRole!=null?cfn_parse().FromCloudFormation.getString(properties.ExecutionRole):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageImageLoggingConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("logGroupName",cdk().validateString)(properties.logGroupName)),errors.wrap('supplied properties not correct for "ImageLoggingConfigurationProperty"')}function convertCfnImageImageLoggingConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageImageLoggingConfigurationPropertyValidator(properties).assertSuccess(),{LogGroupName:cdk().stringToCloudFormation(properties.logGroupName)}):properties}function CfnImageImageLoggingConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("logGroupName","LogGroupName",properties.LogGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.LogGroupName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageLatestVersionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("major",cdk().validateString)(properties.major)),errors.collect(cdk().propertyValidator("minor",cdk().validateString)(properties.minor)),errors.collect(cdk().propertyValidator("patch",cdk().validateString)(properties.patch)),errors.wrap('supplied properties not correct for "LatestVersionProperty"')}function convertCfnImageLatestVersionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageLatestVersionPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),Major:cdk().stringToCloudFormation(properties.major),Minor:cdk().stringToCloudFormation(properties.minor),Patch:cdk().stringToCloudFormation(properties.patch)}):properties}function CfnImageLatestVersionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("major","Major",properties.Major!=null?cfn_parse().FromCloudFormation.getString(properties.Major):void 0),ret.addPropertyResult("minor","Minor",properties.Minor!=null?cfn_parse().FromCloudFormation.getString(properties.Minor):void 0),ret.addPropertyResult("patch","Patch",properties.Patch!=null?cfn_parse().FromCloudFormation.getString(properties.Patch):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImagePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("containerRecipeArn",cdk().validateString)(properties.containerRecipeArn)),errors.collect(cdk().propertyValidator("deletionSettings",CfnImageDeletionSettingsPropertyValidator)(properties.deletionSettings)),errors.collect(cdk().propertyValidator("distributionConfigurationArn",cdk().validateString)(properties.distributionConfigurationArn)),errors.collect(cdk().propertyValidator("enhancedImageMetadataEnabled",cdk().validateBoolean)(properties.enhancedImageMetadataEnabled)),errors.collect(cdk().propertyValidator("executionRole",cdk().validateString)(properties.executionRole)),errors.collect(cdk().propertyValidator("imagePipelineExecutionSettings",CfnImageImagePipelineExecutionSettingsPropertyValidator)(properties.imagePipelineExecutionSettings)),errors.collect(cdk().propertyValidator("imageRecipeArn",cdk().validateString)(properties.imageRecipeArn)),errors.collect(cdk().propertyValidator("imageScanningConfiguration",CfnImageImageScanningConfigurationPropertyValidator)(properties.imageScanningConfiguration)),errors.collect(cdk().propertyValidator("imageTestsConfiguration",CfnImageImageTestsConfigurationPropertyValidator)(properties.imageTestsConfiguration)),errors.collect(cdk().propertyValidator("infrastructureConfigurationArn",cdk().validateString)(properties.infrastructureConfigurationArn)),errors.collect(cdk().propertyValidator("loggingConfiguration",CfnImageImageLoggingConfigurationPropertyValidator)(properties.loggingConfiguration)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("workflows",cdk().listValidator(CfnImageWorkflowConfigurationPropertyValidator))(properties.workflows)),errors.wrap('supplied properties not correct for "CfnImageProps"')}function convertCfnImagePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImagePropsValidator(properties).assertSuccess(),{ContainerRecipeArn:cdk().stringToCloudFormation(properties.containerRecipeArn),DeletionSettings:convertCfnImageDeletionSettingsPropertyToCloudFormation(properties.deletionSettings),DistributionConfigurationArn:cdk().stringToCloudFormation(properties.distributionConfigurationArn),EnhancedImageMetadataEnabled:cdk().booleanToCloudFormation(properties.enhancedImageMetadataEnabled),ExecutionRole:cdk().stringToCloudFormation(properties.executionRole),ImagePipelineExecutionSettings:convertCfnImageImagePipelineExecutionSettingsPropertyToCloudFormation(properties.imagePipelineExecutionSettings),ImageRecipeArn:cdk().stringToCloudFormation(properties.imageRecipeArn),ImageScanningConfiguration:convertCfnImageImageScanningConfigurationPropertyToCloudFormation(properties.imageScanningConfiguration),ImageTestsConfiguration:convertCfnImageImageTestsConfigurationPropertyToCloudFormation(properties.imageTestsConfiguration),InfrastructureConfigurationArn:cdk().stringToCloudFormation(properties.infrastructureConfigurationArn),LoggingConfiguration:convertCfnImageImageLoggingConfigurationPropertyToCloudFormation(properties.loggingConfiguration),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),Workflows:cdk().listMapper(convertCfnImageWorkflowConfigurationPropertyToCloudFormation)(properties.workflows)}):properties}function CfnImagePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("containerRecipeArn","ContainerRecipeArn",properties.ContainerRecipeArn!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerRecipeArn):void 0),ret.addPropertyResult("deletionSettings","DeletionSettings",properties.DeletionSettings!=null?CfnImageDeletionSettingsPropertyFromCloudFormation(properties.DeletionSettings):void 0),ret.addPropertyResult("distributionConfigurationArn","DistributionConfigurationArn",properties.DistributionConfigurationArn!=null?cfn_parse().FromCloudFormation.getString(properties.DistributionConfigurationArn):void 0),ret.addPropertyResult("enhancedImageMetadataEnabled","EnhancedImageMetadataEnabled",properties.EnhancedImageMetadataEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnhancedImageMetadataEnabled):void 0),ret.addPropertyResult("executionRole","ExecutionRole",properties.ExecutionRole!=null?cfn_parse().FromCloudFormation.getString(properties.ExecutionRole):void 0),ret.addPropertyResult("imagePipelineExecutionSettings","ImagePipelineExecutionSettings",properties.ImagePipelineExecutionSettings!=null?CfnImageImagePipelineExecutionSettingsPropertyFromCloudFormation(properties.ImagePipelineExecutionSettings):void 0),ret.addPropertyResult("imageRecipeArn","ImageRecipeArn",properties.ImageRecipeArn!=null?cfn_parse().FromCloudFormation.getString(properties.ImageRecipeArn):void 0),ret.addPropertyResult("imageScanningConfiguration","ImageScanningConfiguration",properties.ImageScanningConfiguration!=null?CfnImageImageScanningConfigurationPropertyFromCloudFormation(properties.ImageScanningConfiguration):void 0),ret.addPropertyResult("imageTestsConfiguration","ImageTestsConfiguration",properties.ImageTestsConfiguration!=null?CfnImageImageTestsConfigurationPropertyFromCloudFormation(properties.ImageTestsConfiguration):void 0),ret.addPropertyResult("infrastructureConfigurationArn","InfrastructureConfigurationArn",properties.InfrastructureConfigurationArn!=null?cfn_parse().FromCloudFormation.getString(properties.InfrastructureConfigurationArn):void 0),ret.addPropertyResult("loggingConfiguration","LoggingConfiguration",properties.LoggingConfiguration!=null?CfnImageImageLoggingConfigurationPropertyFromCloudFormation(properties.LoggingConfiguration):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("workflows","Workflows",properties.Workflows!=null?cfn_parse().FromCloudFormation.getArray(CfnImageWorkflowConfigurationPropertyFromCloudFormation)(properties.Workflows):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnImagePipeline extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_imagebuilder.CfnImagePipeline",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ImageBuilder::ImagePipeline";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnImagePipelinePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnImagePipeline(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnImagePipeline(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnImagePipeline.CFN_RESOURCE_TYPE_NAME}static arnForImagePipeline(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_imagebuilder_IImagePipelineRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForImagePipeline),error}return resource.imagePipelineRef.imagePipelineArn}_containerRecipeArn;_description;_distributionConfigurationArn;_enhancedImageMetadataEnabled;_executionRole;_imageRecipeArn;_imageScanningConfiguration;_imageTestsConfiguration;_infrastructureConfigurationArn;_loggingConfiguration;_name;_schedule;_status;tags;_tagsRaw;_workflows;cfnPropertyNames={containerRecipeArn:"ContainerRecipeArn",description:"Description",distributionConfigurationArn:"DistributionConfigurationArn",enhancedImageMetadataEnabled:"EnhancedImageMetadataEnabled",executionRole:"ExecutionRole",imageRecipeArn:"ImageRecipeArn",imageScanningConfiguration:"ImageScanningConfiguration",imageTestsConfiguration:"ImageTestsConfiguration",infrastructureConfigurationArn:"InfrastructureConfigurationArn",loggingConfiguration:"LoggingConfiguration",name:"Name",schedule:"Schedule",status:"Status",tags:"Tags",workflows:"Workflows"};constructor(scope,id,props){super(scope,id,{type:CfnImagePipeline.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_imagebuilder_CfnImagePipelineProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnImagePipeline),error}cdk().requireProperty(props,"infrastructureConfigurationArn",this),cdk().requireProperty(props,"name",this),this._containerRecipeArn=cdk().getRefProperty(props.containerRecipeArn?.containerRecipeRef,"containerRecipeArn")??cdk().ensureStringOrUndefined(props.containerRecipeArn,"containerRecipeArn","imagebuilder.IContainerRecipeRef | string"),this._description=props.description,this._distributionConfigurationArn=cdk().getRefProperty(props.distributionConfigurationArn?.distributionConfigurationRef,"distributionConfigurationArn")??cdk().ensureStringOrUndefined(props.distributionConfigurationArn,"distributionConfigurationArn","imagebuilder.IDistributionConfigurationRef | string"),this._enhancedImageMetadataEnabled=props.enhancedImageMetadataEnabled,this._executionRole=props.executionRole,this._imageRecipeArn=cdk().getRefProperty(props.imageRecipeArn?.imageRecipeRef,"imageRecipeArn")??cdk().ensureStringOrUndefined(props.imageRecipeArn,"imageRecipeArn","imagebuilder.IImageRecipeRef | string"),this._imageScanningConfiguration=props.imageScanningConfiguration,this._imageTestsConfiguration=props.imageTestsConfiguration,this._infrastructureConfigurationArn=cdk().getRefProperty(props.infrastructureConfigurationArn?.infrastructureConfigurationRef,"infrastructureConfigurationArn")??cdk().ensureStringOrUndefined(props.infrastructureConfigurationArn,"infrastructureConfigurationArn","imagebuilder.IInfrastructureConfigurationRef | string"),this._loggingConfiguration=props.loggingConfiguration,this._name=props.name,this._schedule=props.schedule,this._status=props.status,this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::ImageBuilder::ImagePipeline",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._workflows=props.workflows}get imagePipelineRef(){return{imagePipelineArn:this.ref}}get containerRecipeArn(){return this._containerRecipeArn}set containerRecipeArn(value){cdk().traceProperty(this.node,"ContainerRecipeArn"),this._containerRecipeArn=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get distributionConfigurationArn(){return this._distributionConfigurationArn}set distributionConfigurationArn(value){cdk().traceProperty(this.node,"DistributionConfigurationArn"),this._distributionConfigurationArn=value}get enhancedImageMetadataEnabled(){return this._enhancedImageMetadataEnabled}set enhancedImageMetadataEnabled(value){cdk().traceProperty(this.node,"EnhancedImageMetadataEnabled"),this._enhancedImageMetadataEnabled=value}get executionRole(){return this._executionRole}set executionRole(value){cdk().traceProperty(this.node,"ExecutionRole"),this._executionRole=value}get imageRecipeArn(){return this._imageRecipeArn}set imageRecipeArn(value){cdk().traceProperty(this.node,"ImageRecipeArn"),this._imageRecipeArn=value}get imageScanningConfiguration(){return this._imageScanningConfiguration}set imageScanningConfiguration(value){cdk().traceProperty(this.node,"ImageScanningConfiguration"),this._imageScanningConfiguration=value}get imageTestsConfiguration(){return this._imageTestsConfiguration}set imageTestsConfiguration(value){cdk().traceProperty(this.node,"ImageTestsConfiguration"),this._imageTestsConfiguration=value}get infrastructureConfigurationArn(){return this._infrastructureConfigurationArn}set infrastructureConfigurationArn(value){cdk().traceProperty(this.node,"InfrastructureConfigurationArn"),this._infrastructureConfigurationArn=value}get loggingConfiguration(){return this._loggingConfiguration}set loggingConfiguration(value){cdk().traceProperty(this.node,"LoggingConfiguration"),this._loggingConfiguration=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get schedule(){return this._schedule}set schedule(value){cdk().traceProperty(this.node,"Schedule"),this._schedule=value}get status(){return this._status}set status(value){cdk().traceProperty(this.node,"Status"),this._status=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get workflows(){return this._workflows}set workflows(value){cdk().traceProperty(this.node,"Workflows"),this._workflows=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrDeploymentId(){return cdk().Token.asString(this.getAtt("DeploymentId",cdk().ResolutionTypeHint.STRING))}get attrName(){return cdk().Token.asString(this.getAtt("Name",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{containerRecipeArn:this._containerRecipeArn,description:this._description,distributionConfigurationArn:this._distributionConfigurationArn,enhancedImageMetadataEnabled:this._enhancedImageMetadataEnabled,executionRole:this._executionRole,imageRecipeArn:this._imageRecipeArn,imageScanningConfiguration:this._imageScanningConfiguration,imageTestsConfiguration:this._imageTestsConfiguration,infrastructureConfigurationArn:this._infrastructureConfigurationArn,loggingConfiguration:this._loggingConfiguration,name:this._name,schedule:this._schedule,status:this._status,tags:this.tags.renderTags(),workflows:this._workflows}}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",CfnImagePipeline.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnImagePipelinePropsToCloudFormation(props)}}exports.CfnImagePipeline=CfnImagePipeline;function CfnImagePipelineEcrConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("containerTags",cdk().listValidator(cdk().validateString))(properties.containerTags)),errors.collect(cdk().propertyValidator("repositoryName",cdk().validateString)(properties.repositoryName)),errors.wrap('supplied properties not correct for "EcrConfigurationProperty"')}function convertCfnImagePipelineEcrConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImagePipelineEcrConfigurationPropertyValidator(properties).assertSuccess(),{ContainerTags:cdk().listMapper(cdk().stringToCloudFormation)(properties.containerTags),RepositoryName:cdk().stringToCloudFormation(properties.repositoryName)}):properties}function CfnImagePipelineEcrConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("containerTags","ContainerTags",properties.ContainerTags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ContainerTags):void 0),ret.addPropertyResult("repositoryName","RepositoryName",properties.RepositoryName!=null?cfn_parse().FromCloudFormation.getString(properties.RepositoryName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImagePipelineImageScanningConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("ecrConfiguration",CfnImagePipelineEcrConfigurationPropertyValidator)(properties.ecrConfiguration)),errors.collect(cdk().propertyValidator("imageScanningEnabled",cdk().validateBoolean)(properties.imageScanningEnabled)),errors.wrap('supplied properties not correct for "ImageScanningConfigurationProperty"')}function convertCfnImagePipelineImageScanningConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImagePipelineImageScanningConfigurationPropertyValidator(properties).assertSuccess(),{EcrConfiguration:convertCfnImagePipelineEcrConfigurationPropertyToCloudFormation(properties.ecrConfiguration),ImageScanningEnabled:cdk().booleanToCloudFormation(properties.imageScanningEnabled)}):properties}function CfnImagePipelineImageScanningConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("ecrConfiguration","EcrConfiguration",properties.EcrConfiguration!=null?CfnImagePipelineEcrConfigurationPropertyFromCloudFormation(properties.EcrConfiguration):void 0),ret.addPropertyResult("imageScanningEnabled","ImageScanningEnabled",properties.ImageScanningEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ImageScanningEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImagePipelineAutoDisablePolicyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("failureCount",cdk().requiredValidator)(properties.failureCount)),errors.collect(cdk().propertyValidator("failureCount",cdk().validateNumber)(properties.failureCount)),errors.wrap('supplied properties not correct for "AutoDisablePolicyProperty"')}function convertCfnImagePipelineAutoDisablePolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImagePipelineAutoDisablePolicyPropertyValidator(properties).assertSuccess(),{FailureCount:cdk().numberToCloudFormation(properties.failureCount)}):properties}function CfnImagePipelineAutoDisablePolicyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("failureCount","FailureCount",properties.FailureCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.FailureCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImagePipelineSchedulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("autoDisablePolicy",CfnImagePipelineAutoDisablePolicyPropertyValidator)(properties.autoDisablePolicy)),errors.collect(cdk().propertyValidator("pipelineExecutionStartCondition",cdk().validateString)(properties.pipelineExecutionStartCondition)),errors.collect(cdk().propertyValidator("scheduleExpression",cdk().validateString)(properties.scheduleExpression)),errors.wrap('supplied properties not correct for "ScheduleProperty"')}function convertCfnImagePipelineSchedulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImagePipelineSchedulePropertyValidator(properties).assertSuccess(),{AutoDisablePolicy:convertCfnImagePipelineAutoDisablePolicyPropertyToCloudFormation(properties.autoDisablePolicy),PipelineExecutionStartCondition:cdk().stringToCloudFormation(properties.pipelineExecutionStartCondition),ScheduleExpression:cdk().stringToCloudFormation(properties.scheduleExpression)}):properties}function CfnImagePipelineSchedulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("autoDisablePolicy","AutoDisablePolicy",properties.AutoDisablePolicy!=null?CfnImagePipelineAutoDisablePolicyPropertyFromCloudFormation(properties.AutoDisablePolicy):void 0),ret.addPropertyResult("pipelineExecutionStartCondition","PipelineExecutionStartCondition",properties.PipelineExecutionStartCondition!=null?cfn_parse().FromCloudFormation.getString(properties.PipelineExecutionStartCondition):void 0),ret.addPropertyResult("scheduleExpression","ScheduleExpression",properties.ScheduleExpression!=null?cfn_parse().FromCloudFormation.getString(properties.ScheduleExpression):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImagePipelineImageTestsConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("imageTestsEnabled",cdk().validateBoolean)(properties.imageTestsEnabled)),errors.collect(cdk().propertyValidator("timeoutMinutes",cdk().validateNumber)(properties.timeoutMinutes)),errors.wrap('supplied properties not correct for "ImageTestsConfigurationProperty"')}function convertCfnImagePipelineImageTestsConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImagePipelineImageTestsConfigurationPropertyValidator(properties).assertSuccess(),{ImageTestsEnabled:cdk().booleanToCloudFormation(properties.imageTestsEnabled),TimeoutMinutes:cdk().numberToCloudFormation(properties.timeoutMinutes)}):properties}function CfnImagePipelineImageTestsConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("imageTestsEnabled","ImageTestsEnabled",properties.ImageTestsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ImageTestsEnabled):void 0),ret.addPropertyResult("timeoutMinutes","TimeoutMinutes",properties.TimeoutMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutMinutes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImagePipelineWorkflowParameterPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().listValidator(cdk().validateString))(properties.value)),errors.wrap('supplied properties not correct for "WorkflowParameterProperty"')}function convertCfnImagePipelineWorkflowParameterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImagePipelineWorkflowParameterPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().listMapper(cdk().stringToCloudFormation)(properties.value)}):properties}function CfnImagePipelineWorkflowParameterPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImagePipelineWorkflowConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("onFailure",cdk().validateString)(properties.onFailure)),errors.collect(cdk().propertyValidator("parallelGroup",cdk().validateString)(properties.parallelGroup)),errors.collect(cdk().propertyValidator("parameters",cdk().listValidator(CfnImagePipelineWorkflowParameterPropertyValidator))(properties.parameters)),errors.collect(cdk().propertyValidator("workflowArn",cdk().validateString)(properties.workflowArn)),errors.wrap('supplied properties not correct for "WorkflowConfigurationProperty"')}function convertCfnImagePipelineWorkflowConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImagePipelineWorkflowConfigurationPropertyValidator(properties).assertSuccess(),{OnFailure:cdk().stringToCloudFormation(properties.onFailure),ParallelGroup:cdk().stringToCloudFormation(properties.parallelGroup),Parameters:cdk().listMapper(convertCfnImagePipelineWorkflowParameterPropertyToCloudFormation)(properties.parameters),WorkflowArn:cdk().stringToCloudFormation(properties.workflowArn)}):properties}function CfnImagePipelineWorkflowConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("onFailure","OnFailure",properties.OnFailure!=null?cfn_parse().FromCloudFormation.getString(properties.OnFailure):void 0),ret.addPropertyResult("parallelGroup","ParallelGroup",properties.ParallelGroup!=null?cfn_parse().FromCloudFormation.getString(properties.ParallelGroup):void 0),ret.addPropertyResult("parameters","Parameters",properties.Parameters!=null?cfn_parse().FromCloudFormation.getArray(CfnImagePipelineWorkflowParameterPropertyFromCloudFormation)(properties.Parameters):void 0),ret.addPropertyResult("workflowArn","WorkflowArn",properties.WorkflowArn!=null?cfn_parse().FromCloudFormation.getString(properties.WorkflowArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImagePipelinePipelineLoggingConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("imageLogGroupName",cdk().validateString)(properties.imageLogGroupName)),errors.collect(cdk().propertyValidator("pipelineLogGroupName",cdk().validateString)(properties.pipelineLogGroupName)),errors.wrap('supplied properties not correct for "PipelineLoggingConfigurationProperty"')}function convertCfnImagePipelinePipelineLoggingConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImagePipelinePipelineLoggingConfigurationPropertyValidator(properties).assertSuccess(),{ImageLogGroupName:cdk().stringToCloudFormation(properties.imageLogGroupName),PipelineLogGroupName:cdk().stringToCloudFormation(properties.pipelineLogGroupName)}):properties}function CfnImagePipelinePipelineLoggingConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("imageLogGroupName","ImageLogGroupName",properties.ImageLogGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.ImageLogGroupName):void 0),ret.addPropertyResult("pipelineLogGroupName","PipelineLogGroupName",properties.PipelineLogGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.PipelineLogGroupName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImagePipelinePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("containerRecipeArn",cdk().validateString)(properties.containerRecipeArn)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("distributionConfigurationArn",cdk().validateString)(properties.distributionConfigurationArn)),errors.collect(cdk().propertyValidator("enhancedImageMetadataEnabled",cdk().validateBoolean)(properties.enhancedImageMetadataEnabled)),errors.collect(cdk().propertyValidator("executionRole",cdk().validateString)(properties.executionRole)),errors.collect(cdk().propertyValidator("imageRecipeArn",cdk().validateString)(properties.imageRecipeArn)),errors.collect(cdk().propertyValidator("imageScanningConfiguration",CfnImagePipelineImageScanningConfigurationPropertyValidator)(properties.imageScanningConfiguration)),errors.collect(cdk().propertyValidator("imageTestsConfiguration",CfnImagePipelineImageTestsConfigurationPropertyValidator)(properties.imageTestsConfiguration)),errors.collect(cdk().propertyValidator("infrastructureConfigurationArn",cdk().requiredValidator)(properties.infrastructureConfigurationArn)),errors.collect(cdk().propertyValidator("infrastructureConfigurationArn",cdk().validateString)(properties.infrastructureConfigurationArn)),errors.collect(cdk().propertyValidator("loggingConfiguration",CfnImagePipelinePipelineLoggingConfigurationPropertyValidator)(properties.loggingConfiguration)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("schedule",CfnImagePipelineSchedulePropertyValidator)(properties.schedule)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("workflows",cdk().listValidator(CfnImagePipelineWorkflowConfigurationPropertyValidator))(properties.workflows)),errors.wrap('supplied properties not correct for "CfnImagePipelineProps"')}function convertCfnImagePipelinePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImagePipelinePropsValidator(properties).assertSuccess(),{ContainerRecipeArn:cdk().stringToCloudFormation(properties.containerRecipeArn),Description:cdk().stringToCloudFormation(properties.description),DistributionConfigurationArn:cdk().stringToCloudFormation(properties.distributionConfigurationArn),EnhancedImageMetadataEnabled:cdk().booleanToCloudFormation(properties.enhancedImageMetadataEnabled),ExecutionRole:cdk().stringToCloudFormation(properties.executionRole),ImageRecipeArn:cdk().stringToCloudFormation(properties.imageRecipeArn),ImageScanningConfiguration:convertCfnImagePipelineImageScanningConfigurationPropertyToCloudFormation(properties.imageScanningConfiguration),ImageTestsConfiguration:convertCfnImagePipelineImageTestsConfigurationPropertyToCloudFormation(properties.imageTestsConfiguration),InfrastructureConfigurationArn:cdk().stringToCloudFormation(properties.infrastructureConfigurationArn),LoggingConfiguration:convertCfnImagePipelinePipelineLoggingConfigurationPropertyToCloudFormation(properties.loggingConfiguration),Name:cdk().stringToCloudFormation(properties.name),Schedule:convertCfnImagePipelineSchedulePropertyToCloudFormation(properties.schedule),Status:cdk().stringToCloudFormation(properties.status),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),Workflows:cdk().listMapper(convertCfnImagePipelineWorkflowConfigurationPropertyToCloudFormation)(properties.workflows)}):properties}function CfnImagePipelinePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("containerRecipeArn","ContainerRecipeArn",properties.ContainerRecipeArn!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerRecipeArn):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("distributionConfigurationArn","DistributionConfigurationArn",properties.DistributionConfigurationArn!=null?cfn_parse().FromCloudFormation.getString(properties.DistributionConfigurationArn):void 0),ret.addPropertyResult("enhancedImageMetadataEnabled","EnhancedImageMetadataEnabled",properties.EnhancedImageMetadataEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnhancedImageMetadataEnabled):void 0),ret.addPropertyResult("executionRole","ExecutionRole",properties.ExecutionRole!=null?cfn_parse().FromCloudFormation.getString(properties.ExecutionRole):void 0),ret.addPropertyResult("imageRecipeArn","ImageRecipeArn",properties.ImageRecipeArn!=null?cfn_parse().FromCloudFormation.getString(properties.ImageRecipeArn):void 0),ret.addPropertyResult("imageScanningConfiguration","ImageScanningConfiguration",properties.ImageScanningConfiguration!=null?CfnImagePipelineImageScanningConfigurationPropertyFromCloudFormation(properties.ImageScanningConfiguration):void 0),ret.addPropertyResult("imageTestsConfiguration","ImageTestsConfiguration",properties.ImageTestsConfiguration!=null?CfnImagePipelineImageTestsConfigurationPropertyFromCloudFormation(properties.ImageTestsConfiguration):void 0),ret.addPropertyResult("infrastructureConfigurationArn","InfrastructureConfigurationArn",properties.InfrastructureConfigurationArn!=null?cfn_parse().FromCloudFormation.getString(properties.InfrastructureConfigurationArn):void 0),ret.addPropertyResult("loggingConfiguration","LoggingConfiguration",properties.LoggingConfiguration!=null?CfnImagePipelinePipelineLoggingConfigurationPropertyFromCloudFormation(properties.LoggingConfiguration):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("schedule","Schedule",properties.Schedule!=null?CfnImagePipelineSchedulePropertyFromCloudFormation(properties.Schedule):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("workflows","Workflows",properties.Workflows!=null?cfn_parse().FromCloudFormation.getArray(CfnImagePipelineWorkflowConfigurationPropertyFromCloudFormation)(properties.Workflows):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnImageRecipe extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_imagebuilder.CfnImageRecipe",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ImageBuilder::ImageRecipe";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnImageRecipePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnImageRecipe(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnImageRecipe(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnImageRecipe.CFN_RESOURCE_TYPE_NAME}static arnForImageRecipe(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_imagebuilder_IImageRecipeRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForImageRecipe),error}return resource.imageRecipeRef.imageRecipeArn}_additionalInstanceConfiguration;_amiTags;_blockDeviceMappings;_components;_description;_name;_parentImage;tags;_tagsRaw;_version;_workingDirectory;cfnPropertyNames={additionalInstanceConfiguration:"AdditionalInstanceConfiguration",amiTags:"AmiTags",blockDeviceMappings:"BlockDeviceMappings",components:"Components",description:"Description",name:"Name",parentImage:"ParentImage",tags:"Tags",version:"Version",workingDirectory:"WorkingDirectory"};constructor(scope,id,props){super(scope,id,{type:CfnImageRecipe.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_imagebuilder_CfnImageRecipeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnImageRecipe),error}cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"parentImage",this),cdk().requireProperty(props,"version",this),this._additionalInstanceConfiguration=props.additionalInstanceConfiguration,this._amiTags=props.amiTags,this._blockDeviceMappings=props.blockDeviceMappings,this._components=props.components,this._description=props.description,this._name=props.name,this._parentImage=props.parentImage,this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::ImageBuilder::ImageRecipe",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._version=props.version,this._workingDirectory=props.workingDirectory}get imageRecipeRef(){return{imageRecipeArn:this.ref}}get additionalInstanceConfiguration(){return this._additionalInstanceConfiguration}set additionalInstanceConfiguration(value){cdk().traceProperty(this.node,"AdditionalInstanceConfiguration"),this._additionalInstanceConfiguration=value}get amiTags(){return this._amiTags}set amiTags(value){cdk().traceProperty(this.node,"AmiTags"),this._amiTags=value}get blockDeviceMappings(){return this._blockDeviceMappings}set blockDeviceMappings(value){cdk().traceProperty(this.node,"BlockDeviceMappings"),this._blockDeviceMappings=value}get components(){return this._components}set components(value){cdk().traceProperty(this.node,"Components"),this._components=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get parentImage(){return this._parentImage}set parentImage(value){cdk().traceProperty(this.node,"ParentImage"),this._parentImage=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get version(){return this._version}set version(value){cdk().traceProperty(this.node,"Version"),this._version=value}get workingDirectory(){return this._workingDirectory}set workingDirectory(value){cdk().traceProperty(this.node,"WorkingDirectory"),this._workingDirectory=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrLatestVersion(){return this.getAtt("LatestVersion")}get attrLatestVersionArn(){return cdk().Token.asString(this.getAtt("LatestVersion.Arn",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionMajor(){return cdk().Token.asString(this.getAtt("LatestVersion.Major",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionMinor(){return cdk().Token.asString(this.getAtt("LatestVersion.Minor",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionPatch(){return cdk().Token.asString(this.getAtt("LatestVersion.Patch",cdk().ResolutionTypeHint.STRING))}get attrName(){return cdk().Token.asString(this.getAtt("Name",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{additionalInstanceConfiguration:this._additionalInstanceConfiguration,amiTags:this._amiTags,blockDeviceMappings:this._blockDeviceMappings,components:this._components,description:this._description,name:this._name,parentImage:this._parentImage,tags:this.tags.renderTags(),version:this._version,workingDirectory:this._workingDirectory}}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",CfnImageRecipe.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnImageRecipePropsToCloudFormation(props)}}exports.CfnImageRecipe=CfnImageRecipe;function CfnImageRecipeComponentParameterPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().listValidator(cdk().validateString))(properties.value)),errors.wrap('supplied properties not correct for "ComponentParameterProperty"')}function convertCfnImageRecipeComponentParameterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageRecipeComponentParameterPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),Value:cdk().listMapper(cdk().stringToCloudFormation)(properties.value)}):properties}function CfnImageRecipeComponentParameterPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageRecipeComponentConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("componentArn",cdk().validateString)(properties.componentArn)),errors.collect(cdk().propertyValidator("parameters",cdk().listValidator(CfnImageRecipeComponentParameterPropertyValidator))(properties.parameters)),errors.wrap('supplied properties not correct for "ComponentConfigurationProperty"')}function convertCfnImageRecipeComponentConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageRecipeComponentConfigurationPropertyValidator(properties).assertSuccess(),{ComponentArn:cdk().stringToCloudFormation(properties.componentArn),Parameters:cdk().listMapper(convertCfnImageRecipeComponentParameterPropertyToCloudFormation)(properties.parameters)}):properties}function CfnImageRecipeComponentConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("componentArn","ComponentArn",properties.ComponentArn!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentArn):void 0),ret.addPropertyResult("parameters","Parameters",properties.Parameters!=null?cfn_parse().FromCloudFormation.getArray(CfnImageRecipeComponentParameterPropertyFromCloudFormation)(properties.Parameters):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageRecipeEbsInstanceBlockDeviceSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.collect(cdk().propertyValidator("iops",cdk().validateNumber)(properties.iops)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("snapshotId",cdk().validateString)(properties.snapshotId)),errors.collect(cdk().propertyValidator("throughput",cdk().validateNumber)(properties.throughput)),errors.collect(cdk().propertyValidator("volumeSize",cdk().validateNumber)(properties.volumeSize)),errors.collect(cdk().propertyValidator("volumeType",cdk().validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsInstanceBlockDeviceSpecificationProperty"')}function convertCfnImageRecipeEbsInstanceBlockDeviceSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageRecipeEbsInstanceBlockDeviceSpecificationPropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk().booleanToCloudFormation(properties.encrypted),Iops:cdk().numberToCloudFormation(properties.iops),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),SnapshotId:cdk().stringToCloudFormation(properties.snapshotId),Throughput:cdk().numberToCloudFormation(properties.throughput),VolumeSize:cdk().numberToCloudFormation(properties.volumeSize),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnImageRecipeEbsInstanceBlockDeviceSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse().FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("throughput","Throughput",properties.Throughput!=null?cfn_parse().FromCloudFormation.getNumber(properties.Throughput):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageRecipeInstanceBlockDeviceMappingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deviceName",cdk().validateString)(properties.deviceName)),errors.collect(cdk().propertyValidator("ebs",CfnImageRecipeEbsInstanceBlockDeviceSpecificationPropertyValidator)(properties.ebs)),errors.collect(cdk().propertyValidator("noDevice",cdk().validateString)(properties.noDevice)),errors.collect(cdk().propertyValidator("virtualName",cdk().validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "InstanceBlockDeviceMappingProperty"')}function convertCfnImageRecipeInstanceBlockDeviceMappingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageRecipeInstanceBlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk().stringToCloudFormation(properties.deviceName),Ebs:convertCfnImageRecipeEbsInstanceBlockDeviceSpecificationPropertyToCloudFormation(properties.ebs),NoDevice:cdk().stringToCloudFormation(properties.noDevice),VirtualName:cdk().stringToCloudFormation(properties.virtualName)}):properties}function CfnImageRecipeInstanceBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",properties.DeviceName!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceName):void 0),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnImageRecipeEbsInstanceBlockDeviceSpecificationPropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?cfn_parse().FromCloudFormation.getString(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse().FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageRecipeSystemsManagerAgentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("uninstallAfterBuild",cdk().validateBoolean)(properties.uninstallAfterBuild)),errors.wrap('supplied properties not correct for "SystemsManagerAgentProperty"')}function convertCfnImageRecipeSystemsManagerAgentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageRecipeSystemsManagerAgentPropertyValidator(properties).assertSuccess(),{UninstallAfterBuild:cdk().booleanToCloudFormation(properties.uninstallAfterBuild)}):properties}function CfnImageRecipeSystemsManagerAgentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("uninstallAfterBuild","UninstallAfterBuild",properties.UninstallAfterBuild!=null?cfn_parse().FromCloudFormation.getBoolean(properties.UninstallAfterBuild):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageRecipeAdditionalInstanceConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("systemsManagerAgent",CfnImageRecipeSystemsManagerAgentPropertyValidator)(properties.systemsManagerAgent)),errors.collect(cdk().propertyValidator("userDataOverride",cdk().validateString)(properties.userDataOverride)),errors.wrap('supplied properties not correct for "AdditionalInstanceConfigurationProperty"')}function convertCfnImageRecipeAdditionalInstanceConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageRecipeAdditionalInstanceConfigurationPropertyValidator(properties).assertSuccess(),{SystemsManagerAgent:convertCfnImageRecipeSystemsManagerAgentPropertyToCloudFormation(properties.systemsManagerAgent),UserDataOverride:cdk().stringToCloudFormation(properties.userDataOverride)}):properties}function CfnImageRecipeAdditionalInstanceConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("systemsManagerAgent","SystemsManagerAgent",properties.SystemsManagerAgent!=null?CfnImageRecipeSystemsManagerAgentPropertyFromCloudFormation(properties.SystemsManagerAgent):void 0),ret.addPropertyResult("userDataOverride","UserDataOverride",properties.UserDataOverride!=null?cfn_parse().FromCloudFormation.getString(properties.UserDataOverride):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageRecipeLatestVersionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("major",cdk().validateString)(properties.major)),errors.collect(cdk().propertyValidator("minor",cdk().validateString)(properties.minor)),errors.collect(cdk().propertyValidator("patch",cdk().validateString)(properties.patch)),errors.wrap('supplied properties not correct for "LatestVersionProperty"')}function convertCfnImageRecipeLatestVersionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageRecipeLatestVersionPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),Major:cdk().stringToCloudFormation(properties.major),Minor:cdk().stringToCloudFormation(properties.minor),Patch:cdk().stringToCloudFormation(properties.patch)}):properties}function CfnImageRecipeLatestVersionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("major","Major",properties.Major!=null?cfn_parse().FromCloudFormation.getString(properties.Major):void 0),ret.addPropertyResult("minor","Minor",properties.Minor!=null?cfn_parse().FromCloudFormation.getString(properties.Minor):void 0),ret.addPropertyResult("patch","Patch",properties.Patch!=null?cfn_parse().FromCloudFormation.getString(properties.Patch):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnImageRecipePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("additionalInstanceConfiguration",CfnImageRecipeAdditionalInstanceConfigurationPropertyValidator)(properties.additionalInstanceConfiguration)),errors.collect(cdk().propertyValidator("amiTags",cdk().hashValidator(cdk().validateString))(properties.amiTags)),errors.collect(cdk().propertyValidator("blockDeviceMappings",cdk().listValidator(CfnImageRecipeInstanceBlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk().propertyValidator("components",cdk().listValidator(CfnImageRecipeComponentConfigurationPropertyValidator))(properties.components)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("parentImage",cdk().requiredValidator)(properties.parentImage)),errors.collect(cdk().propertyValidator("parentImage",cdk().validateString)(properties.parentImage)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("version",cdk().requiredValidator)(properties.version)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.collect(cdk().propertyValidator("workingDirectory",cdk().validateString)(properties.workingDirectory)),errors.wrap('supplied properties not correct for "CfnImageRecipeProps"')}function convertCfnImageRecipePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnImageRecipePropsValidator(properties).assertSuccess(),{AdditionalInstanceConfiguration:convertCfnImageRecipeAdditionalInstanceConfigurationPropertyToCloudFormation(properties.additionalInstanceConfiguration),AmiTags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.amiTags),BlockDeviceMappings:cdk().listMapper(convertCfnImageRecipeInstanceBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),Components:cdk().listMapper(convertCfnImageRecipeComponentConfigurationPropertyToCloudFormation)(properties.components),Description:cdk().stringToCloudFormation(properties.description),Name:cdk().stringToCloudFormation(properties.name),ParentImage:cdk().stringToCloudFormation(properties.parentImage),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),Version:cdk().stringToCloudFormation(properties.version),WorkingDirectory:cdk().stringToCloudFormation(properties.workingDirectory)}):properties}function CfnImageRecipePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("additionalInstanceConfiguration","AdditionalInstanceConfiguration",properties.AdditionalInstanceConfiguration!=null?CfnImageRecipeAdditionalInstanceConfigurationPropertyFromCloudFormation(properties.AdditionalInstanceConfiguration):void 0),ret.addPropertyResult("amiTags","AmiTags",properties.AmiTags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.AmiTags):void 0),ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse().FromCloudFormation.getArray(CfnImageRecipeInstanceBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("components","Components",properties.Components!=null?cfn_parse().FromCloudFormation.getArray(CfnImageRecipeComponentConfigurationPropertyFromCloudFormation)(properties.Components):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("parentImage","ParentImage",properties.ParentImage!=null?cfn_parse().FromCloudFormation.getString(properties.ParentImage):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addPropertyResult("workingDirectory","WorkingDirectory",properties.WorkingDirectory!=null?cfn_parse().FromCloudFormation.getString(properties.WorkingDirectory):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnInfrastructureConfiguration extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_imagebuilder.CfnInfrastructureConfiguration",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ImageBuilder::InfrastructureConfiguration";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInfrastructureConfigurationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnInfrastructureConfiguration(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnInfrastructureConfiguration(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnInfrastructureConfiguration.CFN_RESOURCE_TYPE_NAME}static arnForInfrastructureConfiguration(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_imagebuilder_IInfrastructureConfigurationRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForInfrastructureConfiguration),error}return resource.infrastructureConfigurationRef.infrastructureConfigurationArn}_description;_instanceMetadataOptions;_instanceProfileName;_instanceTypes;_keyPair;_logging;_name;_placement;_resourceTags;_securityGroupIds;_snsTopicArn;_subnetId;tags;_tagsRaw;_terminateInstanceOnFailure;cfnPropertyNames={description:"Description",instanceMetadataOptions:"InstanceMetadataOptions",instanceProfileName:"InstanceProfileName",instanceTypes:"InstanceTypes",keyPair:"KeyPair",logging:"Logging",name:"Name",placement:"Placement",resourceTags:"ResourceTags",securityGroupIds:"SecurityGroupIds",snsTopicArn:"SnsTopicArn",subnetId:"SubnetId",tags:"Tags",terminateInstanceOnFailure:"TerminateInstanceOnFailure"};constructor(scope,id,props){super(scope,id,{type:CfnInfrastructureConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_imagebuilder_CfnInfrastructureConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInfrastructureConfiguration),error}cdk().requireProperty(props,"instanceProfileName",this),cdk().requireProperty(props,"name",this),this._description=props.description,this._instanceMetadataOptions=props.instanceMetadataOptions,this._instanceProfileName=cdk().getRefProperty(props.instanceProfileName?.instanceProfileRef,"instanceProfileName")??cdk().ensureStringOrUndefined(props.instanceProfileName,"instanceProfileName","iam.IInstanceProfileRef | string"),this._instanceTypes=props.instanceTypes,this._keyPair=props.keyPair,this._logging=props.logging,this._name=props.name,this._placement=props.placement,this._resourceTags=props.resourceTags,this._securityGroupIds=props.securityGroupIds,this._snsTopicArn=cdk().getRefProperty(props.snsTopicArn?.topicRef,"topicArn")??cdk().ensureStringOrUndefined(props.snsTopicArn,"snsTopicArn","sns.ITopicRef | string"),this._subnetId=props.subnetId,this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::ImageBuilder::InfrastructureConfiguration",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._terminateInstanceOnFailure=props.terminateInstanceOnFailure}get infrastructureConfigurationRef(){return{infrastructureConfigurationArn:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get instanceMetadataOptions(){return this._instanceMetadataOptions}set instanceMetadataOptions(value){cdk().traceProperty(this.node,"InstanceMetadataOptions"),this._instanceMetadataOptions=value}get instanceProfileName(){return this._instanceProfileName}set instanceProfileName(value){cdk().traceProperty(this.node,"InstanceProfileName"),this._instanceProfileName=value}get instanceTypes(){return this._instanceTypes}set instanceTypes(value){cdk().traceProperty(this.node,"InstanceTypes"),this._instanceTypes=value}get keyPair(){return this._keyPair}set keyPair(value){cdk().traceProperty(this.node,"KeyPair"),this._keyPair=value}get logging(){return this._logging}set logging(value){cdk().traceProperty(this.node,"Logging"),this._logging=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get placement(){return this._placement}set placement(value){cdk().traceProperty(this.node,"Placement"),this._placement=value}get resourceTags(){return this._resourceTags}set resourceTags(value){cdk().traceProperty(this.node,"ResourceTags"),this._resourceTags=value}get securityGroupIds(){return this._securityGroupIds}set securityGroupIds(value){cdk().traceProperty(this.node,"SecurityGroupIds"),this._securityGroupIds=value}get snsTopicArn(){return this._snsTopicArn}set snsTopicArn(value){cdk().traceProperty(this.node,"SnsTopicArn"),this._snsTopicArn=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get terminateInstanceOnFailure(){return this._terminateInstanceOnFailure}set terminateInstanceOnFailure(value){cdk().traceProperty(this.node,"TerminateInstanceOnFailure"),this._terminateInstanceOnFailure=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrName(){return cdk().Token.asString(this.getAtt("Name",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,instanceMetadataOptions:this._instanceMetadataOptions,instanceProfileName:this._instanceProfileName,instanceTypes:this._instanceTypes,keyPair:this._keyPair,logging:this._logging,name:this._name,placement:this._placement,resourceTags:this._resourceTags,securityGroupIds:this._securityGroupIds,snsTopicArn:this._snsTopicArn,subnetId:this._subnetId,tags:this.tags.renderTags(),terminateInstanceOnFailure:this._terminateInstanceOnFailure}}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",CfnInfrastructureConfiguration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnInfrastructureConfigurationPropsToCloudFormation(props)}}exports.CfnInfrastructureConfiguration=CfnInfrastructureConfiguration;function CfnInfrastructureConfigurationS3LogsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("s3BucketName",cdk().validateString)(properties.s3BucketName)),errors.collect(cdk().propertyValidator("s3KeyPrefix",cdk().validateString)(properties.s3KeyPrefix)),errors.wrap('supplied properties not correct for "S3LogsProperty"')}function convertCfnInfrastructureConfigurationS3LogsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInfrastructureConfigurationS3LogsPropertyValidator(properties).assertSuccess(),{S3BucketName:cdk().stringToCloudFormation(properties.s3BucketName),S3KeyPrefix:cdk().stringToCloudFormation(properties.s3KeyPrefix)}):properties}function CfnInfrastructureConfigurationS3LogsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("s3BucketName","S3BucketName",properties.S3BucketName!=null?cfn_parse().FromCloudFormation.getString(properties.S3BucketName):void 0),ret.addPropertyResult("s3KeyPrefix","S3KeyPrefix",properties.S3KeyPrefix!=null?cfn_parse().FromCloudFormation.getString(properties.S3KeyPrefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInfrastructureConfigurationLoggingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("s3Logs",CfnInfrastructureConfigurationS3LogsPropertyValidator)(properties.s3Logs)),errors.wrap('supplied properties not correct for "LoggingProperty"')}function convertCfnInfrastructureConfigurationLoggingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInfrastructureConfigurationLoggingPropertyValidator(properties).assertSuccess(),{S3Logs:convertCfnInfrastructureConfigurationS3LogsPropertyToCloudFormation(properties.s3Logs)}):properties}function CfnInfrastructureConfigurationLoggingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("s3Logs","S3Logs",properties.S3Logs!=null?CfnInfrastructureConfigurationS3LogsPropertyFromCloudFormation(properties.S3Logs):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInfrastructureConfigurationInstanceMetadataOptionsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("httpPutResponseHopLimit",cdk().validateNumber)(properties.httpPutResponseHopLimit)),errors.collect(cdk().propertyValidator("httpTokens",cdk().validateString)(properties.httpTokens)),errors.wrap('supplied properties not correct for "InstanceMetadataOptionsProperty"')}function convertCfnInfrastructureConfigurationInstanceMetadataOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInfrastructureConfigurationInstanceMetadataOptionsPropertyValidator(properties).assertSuccess(),{HttpPutResponseHopLimit:cdk().numberToCloudFormation(properties.httpPutResponseHopLimit),HttpTokens:cdk().stringToCloudFormation(properties.httpTokens)}):properties}function CfnInfrastructureConfigurationInstanceMetadataOptionsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("httpPutResponseHopLimit","HttpPutResponseHopLimit",properties.HttpPutResponseHopLimit!=null?cfn_parse().FromCloudFormation.getNumber(properties.HttpPutResponseHopLimit):void 0),ret.addPropertyResult("httpTokens","HttpTokens",properties.HttpTokens!=null?cfn_parse().FromCloudFormation.getString(properties.HttpTokens):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInfrastructureConfigurationPlacementPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("hostId",cdk().validateString)(properties.hostId)),errors.collect(cdk().propertyValidator("hostResourceGroupArn",cdk().validateString)(properties.hostResourceGroupArn)),errors.collect(cdk().propertyValidator("tenancy",cdk().validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "PlacementProperty"')}function convertCfnInfrastructureConfigurationPlacementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInfrastructureConfigurationPlacementPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),HostId:cdk().stringToCloudFormation(properties.hostId),HostResourceGroupArn:cdk().stringToCloudFormation(properties.hostResourceGroupArn),Tenancy:cdk().stringToCloudFormation(properties.tenancy)}):properties}function CfnInfrastructureConfigurationPlacementPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("hostId","HostId",properties.HostId!=null?cfn_parse().FromCloudFormation.getString(properties.HostId):void 0),ret.addPropertyResult("hostResourceGroupArn","HostResourceGroupArn",properties.HostResourceGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.HostResourceGroupArn):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse().FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInfrastructureConfigurationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("instanceMetadataOptions",CfnInfrastructureConfigurationInstanceMetadataOptionsPropertyValidator)(properties.instanceMetadataOptions)),errors.collect(cdk().propertyValidator("instanceProfileName",cdk().requiredValidator)(properties.instanceProfileName)),errors.collect(cdk().propertyValidator("instanceProfileName",cdk().validateString)(properties.instanceProfileName)),errors.collect(cdk().propertyValidator("instanceTypes",cdk().listValidator(cdk().validateString))(properties.instanceTypes)),errors.collect(cdk().propertyValidator("keyPair",cdk().validateString)(properties.keyPair)),errors.collect(cdk().propertyValidator("logging",CfnInfrastructureConfigurationLoggingPropertyValidator)(properties.logging)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("placement",CfnInfrastructureConfigurationPlacementPropertyValidator)(properties.placement)),errors.collect(cdk().propertyValidator("resourceTags",cdk().hashValidator(cdk().validateString))(properties.resourceTags)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().listValidator(cdk().validateString))(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("snsTopicArn",cdk().validateString)(properties.snsTopicArn)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("terminateInstanceOnFailure",cdk().validateBoolean)(properties.terminateInstanceOnFailure)),errors.wrap('supplied properties not correct for "CfnInfrastructureConfigurationProps"')}function convertCfnInfrastructureConfigurationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInfrastructureConfigurationPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),InstanceMetadataOptions:convertCfnInfrastructureConfigurationInstanceMetadataOptionsPropertyToCloudFormation(properties.instanceMetadataOptions),InstanceProfileName:cdk().stringToCloudFormation(properties.instanceProfileName),InstanceTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.instanceTypes),KeyPair:cdk().stringToCloudFormation(properties.keyPair),Logging:convertCfnInfrastructureConfigurationLoggingPropertyToCloudFormation(properties.logging),Name:cdk().stringToCloudFormation(properties.name),Placement:convertCfnInfrastructureConfigurationPlacementPropertyToCloudFormation(properties.placement),ResourceTags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.resourceTags),SecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroupIds),SnsTopicArn:cdk().stringToCloudFormation(properties.snsTopicArn),SubnetId:cdk().stringToCloudFormation(properties.subnetId),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),TerminateInstanceOnFailure:cdk().booleanToCloudFormation(properties.terminateInstanceOnFailure)}):properties}function CfnInfrastructureConfigurationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("instanceMetadataOptions","InstanceMetadataOptions",properties.InstanceMetadataOptions!=null?CfnInfrastructureConfigurationInstanceMetadataOptionsPropertyFromCloudFormation(properties.InstanceMetadataOptions):void 0),ret.addPropertyResult("instanceProfileName","InstanceProfileName",properties.InstanceProfileName!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceProfileName):void 0),ret.addPropertyResult("instanceTypes","InstanceTypes",properties.InstanceTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.InstanceTypes):void 0),ret.addPropertyResult("keyPair","KeyPair",properties.KeyPair!=null?cfn_parse().FromCloudFormation.getString(properties.KeyPair):void 0),ret.addPropertyResult("logging","Logging",properties.Logging!=null?CfnInfrastructureConfigurationLoggingPropertyFromCloudFormation(properties.Logging):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("placement","Placement",properties.Placement!=null?CfnInfrastructureConfigurationPlacementPropertyFromCloudFormation(properties.Placement):void 0),ret.addPropertyResult("resourceTags","ResourceTags",properties.ResourceTags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.ResourceTags):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroupIds):void 0),ret.addPropertyResult("snsTopicArn","SnsTopicArn",properties.SnsTopicArn!=null?cfn_parse().FromCloudFormation.getString(properties.SnsTopicArn):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("terminateInstanceOnFailure","TerminateInstanceOnFailure",properties.TerminateInstanceOnFailure!=null?cfn_parse().FromCloudFormation.getBoolean(properties.TerminateInstanceOnFailure):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLifecyclePolicy extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_imagebuilder.CfnLifecyclePolicy",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ImageBuilder::LifecyclePolicy";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(cfn_parse().lit`UnexpectedIResolvable`,"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}static isCfnLifecyclePolicy(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLifecyclePolicy.CFN_RESOURCE_TYPE_NAME}static arnForLifecyclePolicy(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_imagebuilder_ILifecyclePolicyRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForLifecyclePolicy),error}return resource.lifecyclePolicyRef.lifecyclePolicyArn}cdkTagManager;_description;_executionRole;_name;_policyDetails;_resourceSelection;_resourceType;_status;_tags;cfnPropertyNames={tags:"Tags",description:"Description",executionRole:"ExecutionRole",name:"Name",policyDetails:"PolicyDetails",resourceSelection:"ResourceSelection",resourceType:"ResourceType",status:"Status"};constructor(scope,id,props){super(scope,id,{type:CfnLifecyclePolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_imagebuilder_CfnLifecyclePolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLifecyclePolicy),error}cdk().requireProperty(props,"executionRole",this),cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"policyDetails",this),cdk().requireProperty(props,"resourceSelection",this),cdk().requireProperty(props,"resourceType",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::ImageBuilder::LifecyclePolicy",void 0,{tagPropertyName:"tags"}),this._description=props.description,this._executionRole=props.executionRole,this._name=props.name,this._policyDetails=props.policyDetails,this._resourceSelection=props.resourceSelection,this._resourceType=props.resourceType,this._status=props.status,this._tags=props.tags}get lifecyclePolicyRef(){return{lifecyclePolicyArn:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get executionRole(){return this._executionRole}set executionRole(value){cdk().traceProperty(this.node,"ExecutionRole"),this._executionRole=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get policyDetails(){return this._policyDetails}set policyDetails(value){cdk().traceProperty(this.node,"PolicyDetails"),this._policyDetails=value}get resourceSelection(){return this._resourceSelection}set resourceSelection(value){cdk().traceProperty(this.node,"ResourceSelection"),this._resourceSelection=value}get resourceType(){return this._resourceType}set resourceType(value){cdk().traceProperty(this.node,"ResourceType"),this._resourceType=value}get status(){return this._status}set status(value){cdk().traceProperty(this.node,"Status"),this._status=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),description:this._description,executionRole:this._executionRole,name:this._name,policyDetails:this._policyDetails,resourceSelection:this._resourceSelection,resourceType:this._resourceType,status:this._status}}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:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLifecyclePolicyPropsToCloudFormation(props)}}exports.CfnLifecyclePolicy=CfnLifecyclePolicy;function CfnLifecyclePolicyIncludeResourcesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("amis",cdk().validateBoolean)(properties.amis)),errors.collect(cdk().propertyValidator("containers",cdk().validateBoolean)(properties.containers)),errors.collect(cdk().propertyValidator("snapshots",cdk().validateBoolean)(properties.snapshots)),errors.wrap('supplied properties not correct for "IncludeResourcesProperty"')}function convertCfnLifecyclePolicyIncludeResourcesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyIncludeResourcesPropertyValidator(properties).assertSuccess(),{Amis:cdk().booleanToCloudFormation(properties.amis),Containers:cdk().booleanToCloudFormation(properties.containers),Snapshots:cdk().booleanToCloudFormation(properties.snapshots)}):properties}function CfnLifecyclePolicyIncludeResourcesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("amis","Amis",properties.Amis!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Amis):void 0),ret.addPropertyResult("containers","Containers",properties.Containers!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Containers):void 0),ret.addPropertyResult("snapshots","Snapshots",properties.Snapshots!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Snapshots):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("includeResources",CfnLifecyclePolicyIncludeResourcesPropertyValidator)(properties.includeResources)),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 "ActionProperty"')}function convertCfnLifecyclePolicyActionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyActionPropertyValidator(properties).assertSuccess(),{IncludeResources:convertCfnLifecyclePolicyIncludeResourcesPropertyToCloudFormation(properties.includeResources),Type:cdk().stringToCloudFormation(properties.type)}):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("includeResources","IncludeResources",properties.IncludeResources!=null?CfnLifecyclePolicyIncludeResourcesPropertyFromCloudFormation(properties.IncludeResources):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyFilterPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("retainAtLeast",cdk().validateNumber)(properties.retainAtLeast)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateNumber)(properties.value)),errors.wrap('supplied properties not correct for "FilterProperty"')}function convertCfnLifecyclePolicyFilterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyFilterPropertyValidator(properties).assertSuccess(),{RetainAtLeast:cdk().numberToCloudFormation(properties.retainAtLeast),Type:cdk().stringToCloudFormation(properties.type),Unit:cdk().stringToCloudFormation(properties.unit),Value:cdk().numberToCloudFormation(properties.value)}):properties}function CfnLifecyclePolicyFilterPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("retainAtLeast","RetainAtLeast",properties.RetainAtLeast!=null?cfn_parse().FromCloudFormation.getNumber(properties.RetainAtLeast):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getNumber(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyLastLaunchedPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("unit",cdk().requiredValidator)(properties.unit)),errors.collect(cdk().propertyValidator("unit",cdk().validateString)(properties.unit)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().validateNumber)(properties.value)),errors.wrap('supplied properties not correct for "LastLaunchedProperty"')}function convertCfnLifecyclePolicyLastLaunchedPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyLastLaunchedPropertyValidator(properties).assertSuccess(),{Unit:cdk().stringToCloudFormation(properties.unit),Value:cdk().numberToCloudFormation(properties.value)}):properties}function CfnLifecyclePolicyLastLaunchedPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getNumber(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyAmiExclusionRulesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("isPublic",cdk().validateBoolean)(properties.isPublic)),errors.collect(cdk().propertyValidator("lastLaunched",CfnLifecyclePolicyLastLaunchedPropertyValidator)(properties.lastLaunched)),errors.collect(cdk().propertyValidator("regions",cdk().listValidator(cdk().validateString))(properties.regions)),errors.collect(cdk().propertyValidator("sharedAccounts",cdk().listValidator(cdk().validateString))(properties.sharedAccounts)),errors.collect(cdk().propertyValidator("tagMap",cdk().hashValidator(cdk().validateString))(properties.tagMap)),errors.wrap('supplied properties not correct for "AmiExclusionRulesProperty"')}function convertCfnLifecyclePolicyAmiExclusionRulesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyAmiExclusionRulesPropertyValidator(properties).assertSuccess(),{IsPublic:cdk().booleanToCloudFormation(properties.isPublic),LastLaunched:convertCfnLifecyclePolicyLastLaunchedPropertyToCloudFormation(properties.lastLaunched),Regions:cdk().listMapper(cdk().stringToCloudFormation)(properties.regions),SharedAccounts:cdk().listMapper(cdk().stringToCloudFormation)(properties.sharedAccounts),TagMap:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tagMap)}):properties}function CfnLifecyclePolicyAmiExclusionRulesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("isPublic","IsPublic",properties.IsPublic!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsPublic):void 0),ret.addPropertyResult("lastLaunched","LastLaunched",properties.LastLaunched!=null?CfnLifecyclePolicyLastLaunchedPropertyFromCloudFormation(properties.LastLaunched):void 0),ret.addPropertyResult("regions","Regions",properties.Regions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Regions):void 0),ret.addPropertyResult("sharedAccounts","SharedAccounts",properties.SharedAccounts!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SharedAccounts):void 0),ret.addPropertyResult("tagMap","TagMap",properties.TagMap!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.TagMap):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyExclusionRulesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("amis",CfnLifecyclePolicyAmiExclusionRulesPropertyValidator)(properties.amis)),errors.collect(cdk().propertyValidator("tagMap",cdk().hashValidator(cdk().validateString))(properties.tagMap)),errors.wrap('supplied properties not correct for "ExclusionRulesProperty"')}function convertCfnLifecyclePolicyExclusionRulesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyExclusionRulesPropertyValidator(properties).assertSuccess(),{Amis:convertCfnLifecyclePolicyAmiExclusionRulesPropertyToCloudFormation(properties.amis),TagMap:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tagMap)}):properties}function CfnLifecyclePolicyExclusionRulesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("amis","Amis",properties.Amis!=null?CfnLifecyclePolicyAmiExclusionRulesPropertyFromCloudFormation(properties.Amis):void 0),ret.addPropertyResult("tagMap","TagMap",properties.TagMap!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.TagMap):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyPolicyDetailPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("action",cdk().requiredValidator)(properties.action)),errors.collect(cdk().propertyValidator("action",CfnLifecyclePolicyActionPropertyValidator)(properties.action)),errors.collect(cdk().propertyValidator("exclusionRules",CfnLifecyclePolicyExclusionRulesPropertyValidator)(properties.exclusionRules)),errors.collect(cdk().propertyValidator("filter",cdk().requiredValidator)(properties.filter)),errors.collect(cdk().propertyValidator("filter",CfnLifecyclePolicyFilterPropertyValidator)(properties.filter)),errors.wrap('supplied properties not correct for "PolicyDetailProperty"')}function convertCfnLifecyclePolicyPolicyDetailPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyPolicyDetailPropertyValidator(properties).assertSuccess(),{Action:convertCfnLifecyclePolicyActionPropertyToCloudFormation(properties.action),ExclusionRules:convertCfnLifecyclePolicyExclusionRulesPropertyToCloudFormation(properties.exclusionRules),Filter:convertCfnLifecyclePolicyFilterPropertyToCloudFormation(properties.filter)}):properties}function CfnLifecyclePolicyPolicyDetailPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",properties.Action!=null?CfnLifecyclePolicyActionPropertyFromCloudFormation(properties.Action):void 0),ret.addPropertyResult("exclusionRules","ExclusionRules",properties.ExclusionRules!=null?CfnLifecyclePolicyExclusionRulesPropertyFromCloudFormation(properties.ExclusionRules):void 0),ret.addPropertyResult("filter","Filter",properties.Filter!=null?CfnLifecyclePolicyFilterPropertyFromCloudFormation(properties.Filter):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyRecipeSelectionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("semanticVersion",cdk().requiredValidator)(properties.semanticVersion)),errors.collect(cdk().propertyValidator("semanticVersion",cdk().validateString)(properties.semanticVersion)),errors.wrap('supplied properties not correct for "RecipeSelectionProperty"')}function convertCfnLifecyclePolicyRecipeSelectionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyRecipeSelectionPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),SemanticVersion:cdk().stringToCloudFormation(properties.semanticVersion)}):properties}function CfnLifecyclePolicyRecipeSelectionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("semanticVersion","SemanticVersion",properties.SemanticVersion!=null?cfn_parse().FromCloudFormation.getString(properties.SemanticVersion):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyResourceSelectionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("recipes",cdk().listValidator(CfnLifecyclePolicyRecipeSelectionPropertyValidator))(properties.recipes)),errors.collect(cdk().propertyValidator("tagMap",cdk().hashValidator(cdk().validateString))(properties.tagMap)),errors.wrap('supplied properties not correct for "ResourceSelectionProperty"')}function convertCfnLifecyclePolicyResourceSelectionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyResourceSelectionPropertyValidator(properties).assertSuccess(),{Recipes:cdk().listMapper(convertCfnLifecyclePolicyRecipeSelectionPropertyToCloudFormation)(properties.recipes),TagMap:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tagMap)}):properties}function CfnLifecyclePolicyResourceSelectionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("recipes","Recipes",properties.Recipes!=null?cfn_parse().FromCloudFormation.getArray(CfnLifecyclePolicyRecipeSelectionPropertyFromCloudFormation)(properties.Recipes):void 0),ret.addPropertyResult("tagMap","TagMap",properties.TagMap!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.TagMap):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLifecyclePolicyPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("executionRole",cdk().requiredValidator)(properties.executionRole)),errors.collect(cdk().propertyValidator("executionRole",cdk().validateString)(properties.executionRole)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("policyDetails",cdk().requiredValidator)(properties.policyDetails)),errors.collect(cdk().propertyValidator("policyDetails",cdk().listValidator(CfnLifecyclePolicyPolicyDetailPropertyValidator))(properties.policyDetails)),errors.collect(cdk().propertyValidator("resourceSelection",cdk().requiredValidator)(properties.resourceSelection)),errors.collect(cdk().propertyValidator("resourceSelection",CfnLifecyclePolicyResourceSelectionPropertyValidator)(properties.resourceSelection)),errors.collect(cdk().propertyValidator("resourceType",cdk().requiredValidator)(properties.resourceType)),errors.collect(cdk().propertyValidator("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.wrap('supplied properties not correct for "CfnLifecyclePolicyProps"')}function convertCfnLifecyclePolicyPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLifecyclePolicyPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),ExecutionRole:cdk().stringToCloudFormation(properties.executionRole),Name:cdk().stringToCloudFormation(properties.name),PolicyDetails:cdk().listMapper(convertCfnLifecyclePolicyPolicyDetailPropertyToCloudFormation)(properties.policyDetails),ResourceSelection:convertCfnLifecyclePolicyResourceSelectionPropertyToCloudFormation(properties.resourceSelection),ResourceType:cdk().stringToCloudFormation(properties.resourceType),Status:cdk().stringToCloudFormation(properties.status),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags)}):properties}function CfnLifecyclePolicyPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("executionRole","ExecutionRole",properties.ExecutionRole!=null?cfn_parse().FromCloudFormation.getString(properties.ExecutionRole):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("policyDetails","PolicyDetails",properties.PolicyDetails!=null?cfn_parse().FromCloudFormation.getArray(CfnLifecyclePolicyPolicyDetailPropertyFromCloudFormation)(properties.PolicyDetails):void 0),ret.addPropertyResult("resourceSelection","ResourceSelection",properties.ResourceSelection!=null?CfnLifecyclePolicyResourceSelectionPropertyFromCloudFormation(properties.ResourceSelection):void 0),ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnWorkflow extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_imagebuilder.CfnWorkflow",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::ImageBuilder::Workflow";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnWorkflowPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnWorkflow(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnWorkflow(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnWorkflow.CFN_RESOURCE_TYPE_NAME}static arnForWorkflow(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_imagebuilder_IWorkflowRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForWorkflow),error}return resource.workflowRef.workflowArn}cdkTagManager;_changeDescription;_data;_description;_kmsKeyId;_name;_tags;_type;_uri;_version;cfnPropertyNames={tags:"Tags",changeDescription:"ChangeDescription",data:"Data",description:"Description",kmsKeyId:"KmsKeyId",name:"Name",type:"Type",uri:"Uri",version:"Version"};constructor(scope,id,props){super(scope,id,{type:CfnWorkflow.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_imagebuilder_CfnWorkflowProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnWorkflow),error}cdk().requireProperty(props,"name",this),cdk().requireProperty(props,"type",this),cdk().requireProperty(props,"version",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::ImageBuilder::Workflow",void 0,{tagPropertyName:"tags"}),this._changeDescription=props.changeDescription,this._data=props.data,this._description=props.description,this._kmsKeyId=props.kmsKeyId,this._name=props.name,this._tags=props.tags,this._type=props.type,this._uri=props.uri,this._version=props.version}get workflowRef(){return{workflowArn:this.ref}}get changeDescription(){return this._changeDescription}set changeDescription(value){cdk().traceProperty(this.node,"ChangeDescription"),this._changeDescription=value}get data(){return this._data}set data(value){cdk().traceProperty(this.node,"Data"),this._data=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get kmsKeyId(){return this._kmsKeyId}set kmsKeyId(value){cdk().traceProperty(this.node,"KmsKeyId"),this._kmsKeyId=value}get name(){return this._name}set name(value){cdk().traceProperty(this.node,"Name"),this._name=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get type(){return this._type}set type(value){cdk().traceProperty(this.node,"Type"),this._type=value}get uri(){return this._uri}set uri(value){cdk().traceProperty(this.node,"Uri"),this._uri=value}get version(){return this._version}set version(value){cdk().traceProperty(this.node,"Version"),this._version=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrLatestVersion(){return this.getAtt("LatestVersion")}get attrLatestVersionArn(){return cdk().Token.asString(this.getAtt("LatestVersion.Arn",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionMajor(){return cdk().Token.asString(this.getAtt("LatestVersion.Major",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionMinor(){return cdk().Token.asString(this.getAtt("LatestVersion.Minor",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionPatch(){return cdk().Token.asString(this.getAtt("LatestVersion.Patch",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),changeDescription:this._changeDescription,data:this._data,description:this._description,kmsKeyId:this._kmsKeyId,name:this._name,type:this._type,uri:this._uri,version:this._version}}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",CfnWorkflow.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnWorkflowPropsToCloudFormation(props)}}exports.CfnWorkflow=CfnWorkflow;function CfnWorkflowLatestVersionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("major",cdk().validateString)(properties.major)),errors.collect(cdk().propertyValidator("minor",cdk().validateString)(properties.minor)),errors.collect(cdk().propertyValidator("patch",cdk().validateString)(properties.patch)),errors.wrap('supplied properties not correct for "LatestVersionProperty"')}function convertCfnWorkflowLatestVersionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWorkflowLatestVersionPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),Major:cdk().stringToCloudFormation(properties.major),Minor:cdk().stringToCloudFormation(properties.minor),Patch:cdk().stringToCloudFormation(properties.patch)}):properties}function CfnWorkflowLatestVersionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("major","Major",properties.Major!=null?cfn_parse().FromCloudFormation.getString(properties.Major):void 0),ret.addPropertyResult("minor","Minor",properties.Minor!=null?cfn_parse().FromCloudFormation.getString(properties.Minor):void 0),ret.addPropertyResult("patch","Patch",properties.Patch!=null?cfn_parse().FromCloudFormation.getString(properties.Patch):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnWorkflowPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("changeDescription",cdk().validateString)(properties.changeDescription)),errors.collect(cdk().propertyValidator("data",cdk().validateString)(properties.data)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.collect(cdk().propertyValidator("uri",cdk().validateString)(properties.uri)),errors.collect(cdk().propertyValidator("version",cdk().requiredValidator)(properties.version)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.wrap('supplied properties not correct for "CfnWorkflowProps"')}function convertCfnWorkflowPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWorkflowPropsValidator(properties).assertSuccess(),{ChangeDescription:cdk().stringToCloudFormation(properties.changeDescription),Data:cdk().stringToCloudFormation(properties.data),Description:cdk().stringToCloudFormation(properties.description),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),Name:cdk().stringToCloudFormation(properties.name),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),Type:cdk().stringToCloudFormation(properties.type),Uri:cdk().stringToCloudFormation(properties.uri),Version:cdk().stringToCloudFormation(properties.version)}):properties}function CfnWorkflowPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("changeDescription","ChangeDescription",properties.ChangeDescription!=null?cfn_parse().FromCloudFormation.getString(properties.ChangeDescription):void 0),ret.addPropertyResult("data","Data",properties.Data!=null?cfn_parse().FromCloudFormation.getString(properties.Data):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("uri","Uri",properties.Uri!=null?cfn_parse().FromCloudFormation.getString(properties.Uri):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}