"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnInstanceSnapshot=exports.CfnDomain=exports.CfnDiskSnapshot=exports.CfnDatabaseSnapshot=exports.CfnStaticIp=exports.CfnLoadBalancerTlsCertificate=exports.CfnLoadBalancer=exports.CfnInstance=exports.CfnDistribution=exports.CfnDisk=exports.CfnDatabase=exports.CfnContainer=exports.CfnCertificate=exports.CfnBucket=exports.CfnAlarm=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 CfnAlarm extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnAlarm",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::Alarm";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnAlarmPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnAlarm(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 isCfnAlarm(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnAlarm.CFN_RESOURCE_TYPE_NAME}static arnForAlarm(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IAlarmRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForAlarm),error}return resource.alarmRef.alarmArn}_alarmName;_comparisonOperator;_contactProtocols;_datapointsToAlarm;_evaluationPeriods;_metricName;_monitoredResourceName;_notificationEnabled;_notificationTriggers;_threshold;_treatMissingData;cfnPropertyNames={alarmName:"AlarmName",comparisonOperator:"ComparisonOperator",contactProtocols:"ContactProtocols",datapointsToAlarm:"DatapointsToAlarm",evaluationPeriods:"EvaluationPeriods",metricName:"MetricName",monitoredResourceName:"MonitoredResourceName",notificationEnabled:"NotificationEnabled",notificationTriggers:"NotificationTriggers",threshold:"Threshold",treatMissingData:"TreatMissingData"};constructor(scope,id,props){super(scope,id,{type:CfnAlarm.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnAlarmProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnAlarm),error}cdk().requireProperty(props,"alarmName",this),cdk().requireProperty(props,"comparisonOperator",this),cdk().requireProperty(props,"evaluationPeriods",this),cdk().requireProperty(props,"metricName",this),cdk().requireProperty(props,"monitoredResourceName",this),cdk().requireProperty(props,"threshold",this),this._alarmName=props.alarmName,this._comparisonOperator=props.comparisonOperator,this._contactProtocols=props.contactProtocols,this._datapointsToAlarm=props.datapointsToAlarm,this._evaluationPeriods=props.evaluationPeriods,this._metricName=props.metricName,this._monitoredResourceName=props.monitoredResourceName,this._notificationEnabled=props.notificationEnabled,this._notificationTriggers=props.notificationTriggers,this._threshold=props.threshold,this._treatMissingData=props.treatMissingData}get alarmRef(){return{alarmName:this.ref,alarmArn:this.attrAlarmArn}}get alarmName(){return this._alarmName}set alarmName(value){cdk().traceProperty(this.node,"AlarmName"),this._alarmName=value}get comparisonOperator(){return this._comparisonOperator}set comparisonOperator(value){cdk().traceProperty(this.node,"ComparisonOperator"),this._comparisonOperator=value}get contactProtocols(){return this._contactProtocols}set contactProtocols(value){cdk().traceProperty(this.node,"ContactProtocols"),this._contactProtocols=value}get datapointsToAlarm(){return this._datapointsToAlarm}set datapointsToAlarm(value){cdk().traceProperty(this.node,"DatapointsToAlarm"),this._datapointsToAlarm=value}get evaluationPeriods(){return this._evaluationPeriods}set evaluationPeriods(value){cdk().traceProperty(this.node,"EvaluationPeriods"),this._evaluationPeriods=value}get metricName(){return this._metricName}set metricName(value){cdk().traceProperty(this.node,"MetricName"),this._metricName=value}get monitoredResourceName(){return this._monitoredResourceName}set monitoredResourceName(value){cdk().traceProperty(this.node,"MonitoredResourceName"),this._monitoredResourceName=value}get notificationEnabled(){return this._notificationEnabled}set notificationEnabled(value){cdk().traceProperty(this.node,"NotificationEnabled"),this._notificationEnabled=value}get notificationTriggers(){return this._notificationTriggers}set notificationTriggers(value){cdk().traceProperty(this.node,"NotificationTriggers"),this._notificationTriggers=value}get threshold(){return this._threshold}set threshold(value){cdk().traceProperty(this.node,"Threshold"),this._threshold=value}get treatMissingData(){return this._treatMissingData}set treatMissingData(value){cdk().traceProperty(this.node,"TreatMissingData"),this._treatMissingData=value}get attrAlarmArn(){return cdk().Token.asString(this.getAtt("AlarmArn",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{alarmName:this._alarmName,comparisonOperator:this._comparisonOperator,contactProtocols:this._contactProtocols,datapointsToAlarm:this._datapointsToAlarm,evaluationPeriods:this._evaluationPeriods,metricName:this._metricName,monitoredResourceName:this._monitoredResourceName,notificationEnabled:this._notificationEnabled,notificationTriggers:this._notificationTriggers,threshold:this._threshold,treatMissingData:this._treatMissingData}}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",CfnAlarm.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnAlarmPropsToCloudFormation(props)}}exports.CfnAlarm=CfnAlarm;function CfnAlarmPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("alarmName",cdk().requiredValidator)(properties.alarmName)),errors.collect(cdk().propertyValidator("alarmName",cdk().validateString)(properties.alarmName)),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().requiredValidator)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("comparisonOperator",cdk().validateString)(properties.comparisonOperator)),errors.collect(cdk().propertyValidator("contactProtocols",cdk().listValidator(cdk().validateString))(properties.contactProtocols)),errors.collect(cdk().propertyValidator("datapointsToAlarm",cdk().validateNumber)(properties.datapointsToAlarm)),errors.collect(cdk().propertyValidator("evaluationPeriods",cdk().requiredValidator)(properties.evaluationPeriods)),errors.collect(cdk().propertyValidator("evaluationPeriods",cdk().validateNumber)(properties.evaluationPeriods)),errors.collect(cdk().propertyValidator("metricName",cdk().requiredValidator)(properties.metricName)),errors.collect(cdk().propertyValidator("metricName",cdk().validateString)(properties.metricName)),errors.collect(cdk().propertyValidator("monitoredResourceName",cdk().requiredValidator)(properties.monitoredResourceName)),errors.collect(cdk().propertyValidator("monitoredResourceName",cdk().validateString)(properties.monitoredResourceName)),errors.collect(cdk().propertyValidator("notificationEnabled",cdk().validateBoolean)(properties.notificationEnabled)),errors.collect(cdk().propertyValidator("notificationTriggers",cdk().listValidator(cdk().validateString))(properties.notificationTriggers)),errors.collect(cdk().propertyValidator("threshold",cdk().requiredValidator)(properties.threshold)),errors.collect(cdk().propertyValidator("threshold",cdk().validateNumber)(properties.threshold)),errors.collect(cdk().propertyValidator("treatMissingData",cdk().validateString)(properties.treatMissingData)),errors.wrap('supplied properties not correct for "CfnAlarmProps"')}function convertCfnAlarmPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnAlarmPropsValidator(properties).assertSuccess(),{AlarmName:cdk().stringToCloudFormation(properties.alarmName),ComparisonOperator:cdk().stringToCloudFormation(properties.comparisonOperator),ContactProtocols:cdk().listMapper(cdk().stringToCloudFormation)(properties.contactProtocols),DatapointsToAlarm:cdk().numberToCloudFormation(properties.datapointsToAlarm),EvaluationPeriods:cdk().numberToCloudFormation(properties.evaluationPeriods),MetricName:cdk().stringToCloudFormation(properties.metricName),MonitoredResourceName:cdk().stringToCloudFormation(properties.monitoredResourceName),NotificationEnabled:cdk().booleanToCloudFormation(properties.notificationEnabled),NotificationTriggers:cdk().listMapper(cdk().stringToCloudFormation)(properties.notificationTriggers),Threshold:cdk().numberToCloudFormation(properties.threshold),TreatMissingData:cdk().stringToCloudFormation(properties.treatMissingData)}):properties}function CfnAlarmPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("alarmName","AlarmName",properties.AlarmName!=null?cfn_parse().FromCloudFormation.getString(properties.AlarmName):void 0),ret.addPropertyResult("comparisonOperator","ComparisonOperator",properties.ComparisonOperator!=null?cfn_parse().FromCloudFormation.getString(properties.ComparisonOperator):void 0),ret.addPropertyResult("contactProtocols","ContactProtocols",properties.ContactProtocols!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ContactProtocols):void 0),ret.addPropertyResult("datapointsToAlarm","DatapointsToAlarm",properties.DatapointsToAlarm!=null?cfn_parse().FromCloudFormation.getNumber(properties.DatapointsToAlarm):void 0),ret.addPropertyResult("evaluationPeriods","EvaluationPeriods",properties.EvaluationPeriods!=null?cfn_parse().FromCloudFormation.getNumber(properties.EvaluationPeriods):void 0),ret.addPropertyResult("metricName","MetricName",properties.MetricName!=null?cfn_parse().FromCloudFormation.getString(properties.MetricName):void 0),ret.addPropertyResult("monitoredResourceName","MonitoredResourceName",properties.MonitoredResourceName!=null?cfn_parse().FromCloudFormation.getString(properties.MonitoredResourceName):void 0),ret.addPropertyResult("notificationEnabled","NotificationEnabled",properties.NotificationEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.NotificationEnabled):void 0),ret.addPropertyResult("notificationTriggers","NotificationTriggers",properties.NotificationTriggers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.NotificationTriggers):void 0),ret.addPropertyResult("threshold","Threshold",properties.Threshold!=null?cfn_parse().FromCloudFormation.getNumber(properties.Threshold):void 0),ret.addPropertyResult("treatMissingData","TreatMissingData",properties.TreatMissingData!=null?cfn_parse().FromCloudFormation.getString(properties.TreatMissingData):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnBucket extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnBucket",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::Bucket";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnBucketPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnBucket(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 isCfnBucket(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnBucket.CFN_RESOURCE_TYPE_NAME}static arnForBucket(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IBucketRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForBucket),error}return resource.bucketRef.bucketArn}_accessRules;_bucketName;_bundleId;_objectVersioning;_readOnlyAccessAccounts;_resourcesReceivingAccess;tags;_tagsRaw;cfnPropertyNames={accessRules:"AccessRules",bucketName:"BucketName",bundleId:"BundleId",objectVersioning:"ObjectVersioning",readOnlyAccessAccounts:"ReadOnlyAccessAccounts",resourcesReceivingAccess:"ResourcesReceivingAccess",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnBucket.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnBucketProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnBucket),error}cdk().requireProperty(props,"bucketName",this),cdk().requireProperty(props,"bundleId",this),this._accessRules=props.accessRules,this._bucketName=props.bucketName,this._bundleId=props.bundleId,this._objectVersioning=props.objectVersioning,this._readOnlyAccessAccounts=props.readOnlyAccessAccounts,this._resourcesReceivingAccess=props.resourcesReceivingAccess,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::Bucket",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get bucketRef(){return{bucketName:this.ref,bucketArn:this.attrBucketArn}}get accessRules(){return this._accessRules}set accessRules(value){cdk().traceProperty(this.node,"AccessRules"),this._accessRules=value}get bucketName(){return this._bucketName}set bucketName(value){cdk().traceProperty(this.node,"BucketName"),this._bucketName=value}get bundleId(){return this._bundleId}set bundleId(value){cdk().traceProperty(this.node,"BundleId"),this._bundleId=value}get objectVersioning(){return this._objectVersioning}set objectVersioning(value){cdk().traceProperty(this.node,"ObjectVersioning"),this._objectVersioning=value}get readOnlyAccessAccounts(){return this._readOnlyAccessAccounts}set readOnlyAccessAccounts(value){cdk().traceProperty(this.node,"ReadOnlyAccessAccounts"),this._readOnlyAccessAccounts=value}get resourcesReceivingAccess(){return this._resourcesReceivingAccess}set resourcesReceivingAccess(value){cdk().traceProperty(this.node,"ResourcesReceivingAccess"),this._resourcesReceivingAccess=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrAbleToUpdateBundle(){return this.getAtt("AbleToUpdateBundle")}get attrBucketArn(){return cdk().Token.asString(this.getAtt("BucketArn",cdk().ResolutionTypeHint.STRING))}get attrUrl(){return cdk().Token.asString(this.getAtt("Url",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{accessRules:this._accessRules,bucketName:this._bucketName,bundleId:this._bundleId,objectVersioning:this._objectVersioning,readOnlyAccessAccounts:this._readOnlyAccessAccounts,resourcesReceivingAccess:this._resourcesReceivingAccess,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",CfnBucket.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnBucketPropsToCloudFormation(props)}}exports.CfnBucket=CfnBucket;function CfnBucketAccessRulesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allowPublicOverrides",cdk().validateBoolean)(properties.allowPublicOverrides)),errors.collect(cdk().propertyValidator("objectAccess",cdk().validateString)(properties.objectAccess)),errors.wrap('supplied properties not correct for "AccessRulesProperty"')}function convertCfnBucketAccessRulesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBucketAccessRulesPropertyValidator(properties).assertSuccess(),{AllowPublicOverrides:cdk().booleanToCloudFormation(properties.allowPublicOverrides),GetObject:cdk().stringToCloudFormation(properties.objectAccess)}):properties}function CfnBucketAccessRulesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allowPublicOverrides","AllowPublicOverrides",properties.AllowPublicOverrides!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AllowPublicOverrides):void 0),ret.addPropertyResult("objectAccess","GetObject",properties.GetObject!=null?cfn_parse().FromCloudFormation.getString(properties.GetObject):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBucketPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("accessRules",CfnBucketAccessRulesPropertyValidator)(properties.accessRules)),errors.collect(cdk().propertyValidator("bucketName",cdk().requiredValidator)(properties.bucketName)),errors.collect(cdk().propertyValidator("bucketName",cdk().validateString)(properties.bucketName)),errors.collect(cdk().propertyValidator("bundleId",cdk().requiredValidator)(properties.bundleId)),errors.collect(cdk().propertyValidator("bundleId",cdk().validateString)(properties.bundleId)),errors.collect(cdk().propertyValidator("objectVersioning",cdk().validateBoolean)(properties.objectVersioning)),errors.collect(cdk().propertyValidator("readOnlyAccessAccounts",cdk().listValidator(cdk().validateString))(properties.readOnlyAccessAccounts)),errors.collect(cdk().propertyValidator("resourcesReceivingAccess",cdk().listValidator(cdk().validateString))(properties.resourcesReceivingAccess)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnBucketProps"')}function convertCfnBucketPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBucketPropsValidator(properties).assertSuccess(),{AccessRules:convertCfnBucketAccessRulesPropertyToCloudFormation(properties.accessRules),BucketName:cdk().stringToCloudFormation(properties.bucketName),BundleId:cdk().stringToCloudFormation(properties.bundleId),ObjectVersioning:cdk().booleanToCloudFormation(properties.objectVersioning),ReadOnlyAccessAccounts:cdk().listMapper(cdk().stringToCloudFormation)(properties.readOnlyAccessAccounts),ResourcesReceivingAccess:cdk().listMapper(cdk().stringToCloudFormation)(properties.resourcesReceivingAccess),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnBucketPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("accessRules","AccessRules",properties.AccessRules!=null?CfnBucketAccessRulesPropertyFromCloudFormation(properties.AccessRules):void 0),ret.addPropertyResult("bucketName","BucketName",properties.BucketName!=null?cfn_parse().FromCloudFormation.getString(properties.BucketName):void 0),ret.addPropertyResult("bundleId","BundleId",properties.BundleId!=null?cfn_parse().FromCloudFormation.getString(properties.BundleId):void 0),ret.addPropertyResult("objectVersioning","ObjectVersioning",properties.ObjectVersioning!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ObjectVersioning):void 0),ret.addPropertyResult("readOnlyAccessAccounts","ReadOnlyAccessAccounts",properties.ReadOnlyAccessAccounts!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ReadOnlyAccessAccounts):void 0),ret.addPropertyResult("resourcesReceivingAccess","ResourcesReceivingAccess",properties.ResourcesReceivingAccess!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ResourcesReceivingAccess):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCertificate extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnCertificate",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::Certificate";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCertificatePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCertificate(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 isCfnCertificate(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCertificate.CFN_RESOURCE_TYPE_NAME}static arnForCertificate(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_ICertificateRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCertificate),error}return resource.certificateRef.certificateArn}_certificateName;_domainName;_subjectAlternativeNames;tags;_tagsRaw;cfnPropertyNames={certificateName:"CertificateName",domainName:"DomainName",subjectAlternativeNames:"SubjectAlternativeNames",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnCertificate.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnCertificateProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCertificate),error}cdk().requireProperty(props,"certificateName",this),cdk().requireProperty(props,"domainName",this),this._certificateName=props.certificateName,this._domainName=props.domainName,this._subjectAlternativeNames=props.subjectAlternativeNames,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::Certificate",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get certificateRef(){return{certificateName:this.ref,certificateArn:this.attrCertificateArn}}get certificateName(){return this._certificateName}set certificateName(value){cdk().traceProperty(this.node,"CertificateName"),this._certificateName=value}get domainName(){return this._domainName}set domainName(value){cdk().traceProperty(this.node,"DomainName"),this._domainName=value}get subjectAlternativeNames(){return this._subjectAlternativeNames}set subjectAlternativeNames(value){cdk().traceProperty(this.node,"SubjectAlternativeNames"),this._subjectAlternativeNames=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrCertificateArn(){return cdk().Token.asString(this.getAtt("CertificateArn",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{certificateName:this._certificateName,domainName:this._domainName,subjectAlternativeNames:this._subjectAlternativeNames,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",CfnCertificate.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCertificatePropsToCloudFormation(props)}}exports.CfnCertificate=CfnCertificate;function CfnCertificatePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("certificateName",cdk().requiredValidator)(properties.certificateName)),errors.collect(cdk().propertyValidator("certificateName",cdk().validateString)(properties.certificateName)),errors.collect(cdk().propertyValidator("domainName",cdk().requiredValidator)(properties.domainName)),errors.collect(cdk().propertyValidator("domainName",cdk().validateString)(properties.domainName)),errors.collect(cdk().propertyValidator("subjectAlternativeNames",cdk().listValidator(cdk().validateString))(properties.subjectAlternativeNames)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnCertificateProps"')}function convertCfnCertificatePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCertificatePropsValidator(properties).assertSuccess(),{CertificateName:cdk().stringToCloudFormation(properties.certificateName),DomainName:cdk().stringToCloudFormation(properties.domainName),SubjectAlternativeNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.subjectAlternativeNames),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCertificatePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateName","CertificateName",properties.CertificateName!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateName):void 0),ret.addPropertyResult("domainName","DomainName",properties.DomainName!=null?cfn_parse().FromCloudFormation.getString(properties.DomainName):void 0),ret.addPropertyResult("subjectAlternativeNames","SubjectAlternativeNames",properties.SubjectAlternativeNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SubjectAlternativeNames):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnContainer extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnContainer",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::Container";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnContainerPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnContainer(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 isCfnContainer(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnContainer.CFN_RESOURCE_TYPE_NAME}static arnForContainer(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IContainerRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForContainer),error}return resource.containerRef.containerArn}_containerServiceDeployment;_isDisabled;_power;_privateRegistryAccess;_publicDomainNames;_scale;_serviceName;tags;_tagsRaw;cfnPropertyNames={containerServiceDeployment:"ContainerServiceDeployment",isDisabled:"IsDisabled",power:"Power",privateRegistryAccess:"PrivateRegistryAccess",publicDomainNames:"PublicDomainNames",scale:"Scale",serviceName:"ServiceName",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnContainer.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnContainerProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnContainer),error}cdk().requireProperty(props,"power",this),cdk().requireProperty(props,"scale",this),cdk().requireProperty(props,"serviceName",this),this._containerServiceDeployment=props.containerServiceDeployment,this._isDisabled=props.isDisabled,this._power=props.power,this._privateRegistryAccess=props.privateRegistryAccess,this._publicDomainNames=props.publicDomainNames,this._scale=props.scale,this._serviceName=props.serviceName,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::Container",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get containerRef(){return{serviceName:this.ref,containerArn:this.attrContainerArn}}get containerServiceDeployment(){return this._containerServiceDeployment}set containerServiceDeployment(value){cdk().traceProperty(this.node,"ContainerServiceDeployment"),this._containerServiceDeployment=value}get isDisabled(){return this._isDisabled}set isDisabled(value){cdk().traceProperty(this.node,"IsDisabled"),this._isDisabled=value}get power(){return this._power}set power(value){cdk().traceProperty(this.node,"Power"),this._power=value}get privateRegistryAccess(){return this._privateRegistryAccess}set privateRegistryAccess(value){cdk().traceProperty(this.node,"PrivateRegistryAccess"),this._privateRegistryAccess=value}get publicDomainNames(){return this._publicDomainNames}set publicDomainNames(value){cdk().traceProperty(this.node,"PublicDomainNames"),this._publicDomainNames=value}get scale(){return this._scale}set scale(value){cdk().traceProperty(this.node,"Scale"),this._scale=value}get serviceName(){return this._serviceName}set serviceName(value){cdk().traceProperty(this.node,"ServiceName"),this._serviceName=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrContainerArn(){return cdk().Token.asString(this.getAtt("ContainerArn",cdk().ResolutionTypeHint.STRING))}get attrPrincipalArn(){return cdk().Token.asString(this.getAtt("PrincipalArn",cdk().ResolutionTypeHint.STRING))}get attrPrivateRegistryAccessEcrImagePullerRolePrincipalArn(){return cdk().Token.asString(this.getAtt("PrivateRegistryAccess.EcrImagePullerRole.PrincipalArn",cdk().ResolutionTypeHint.STRING))}get attrUrl(){return cdk().Token.asString(this.getAtt("Url",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{containerServiceDeployment:this._containerServiceDeployment,isDisabled:this._isDisabled,power:this._power,privateRegistryAccess:this._privateRegistryAccess,publicDomainNames:this._publicDomainNames,scale:this._scale,serviceName:this._serviceName,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",CfnContainer.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnContainerPropsToCloudFormation(props)}}exports.CfnContainer=CfnContainer;function CfnContainerPublicDomainNamePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("certificateName",cdk().validateString)(properties.certificateName)),errors.collect(cdk().propertyValidator("domainNames",cdk().listValidator(cdk().validateString))(properties.domainNames)),errors.wrap('supplied properties not correct for "PublicDomainNameProperty"')}function convertCfnContainerPublicDomainNamePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerPublicDomainNamePropertyValidator(properties).assertSuccess(),{CertificateName:cdk().stringToCloudFormation(properties.certificateName),DomainNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.domainNames)}):properties}function CfnContainerPublicDomainNamePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateName","CertificateName",properties.CertificateName!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateName):void 0),ret.addPropertyResult("domainNames","DomainNames",properties.DomainNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DomainNames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerEcrImagePullerRolePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("isActive",cdk().validateBoolean)(properties.isActive)),errors.collect(cdk().propertyValidator("principalArn",cdk().validateString)(properties.principalArn)),errors.wrap('supplied properties not correct for "EcrImagePullerRoleProperty"')}function convertCfnContainerEcrImagePullerRolePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerEcrImagePullerRolePropertyValidator(properties).assertSuccess(),{IsActive:cdk().booleanToCloudFormation(properties.isActive),PrincipalArn:cdk().stringToCloudFormation(properties.principalArn)}):properties}function CfnContainerEcrImagePullerRolePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("isActive","IsActive",properties.IsActive!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsActive):void 0),ret.addPropertyResult("principalArn","PrincipalArn",properties.PrincipalArn!=null?cfn_parse().FromCloudFormation.getString(properties.PrincipalArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerPrivateRegistryAccessPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("ecrImagePullerRole",CfnContainerEcrImagePullerRolePropertyValidator)(properties.ecrImagePullerRole)),errors.wrap('supplied properties not correct for "PrivateRegistryAccessProperty"')}function convertCfnContainerPrivateRegistryAccessPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerPrivateRegistryAccessPropertyValidator(properties).assertSuccess(),{EcrImagePullerRole:convertCfnContainerEcrImagePullerRolePropertyToCloudFormation(properties.ecrImagePullerRole)}):properties}function CfnContainerPrivateRegistryAccessPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("ecrImagePullerRole","EcrImagePullerRole",properties.EcrImagePullerRole!=null?CfnContainerEcrImagePullerRolePropertyFromCloudFormation(properties.EcrImagePullerRole):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerEnvironmentVariablePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.collect(cdk().propertyValidator("variable",cdk().validateString)(properties.variable)),errors.wrap('supplied properties not correct for "EnvironmentVariableProperty"')}function convertCfnContainerEnvironmentVariablePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerEnvironmentVariablePropertyValidator(properties).assertSuccess(),{Value:cdk().stringToCloudFormation(properties.value),Variable:cdk().stringToCloudFormation(properties.variable)}):properties}function CfnContainerEnvironmentVariablePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addPropertyResult("variable","Variable",properties.Variable!=null?cfn_parse().FromCloudFormation.getString(properties.Variable):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerPortInfoPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("port",cdk().validateString)(properties.port)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "PortInfoProperty"')}function convertCfnContainerPortInfoPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerPortInfoPropertyValidator(properties).assertSuccess(),{Port:cdk().stringToCloudFormation(properties.port),Protocol:cdk().stringToCloudFormation(properties.protocol)}):properties}function CfnContainerPortInfoPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getString(properties.Port):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerContainerPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("command",cdk().listValidator(cdk().validateString))(properties.command)),errors.collect(cdk().propertyValidator("containerName",cdk().validateString)(properties.containerName)),errors.collect(cdk().propertyValidator("environment",cdk().listValidator(CfnContainerEnvironmentVariablePropertyValidator))(properties.environment)),errors.collect(cdk().propertyValidator("image",cdk().validateString)(properties.image)),errors.collect(cdk().propertyValidator("ports",cdk().listValidator(CfnContainerPortInfoPropertyValidator))(properties.ports)),errors.wrap('supplied properties not correct for "ContainerProperty"')}function convertCfnContainerContainerPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerContainerPropertyValidator(properties).assertSuccess(),{Command:cdk().listMapper(cdk().stringToCloudFormation)(properties.command),ContainerName:cdk().stringToCloudFormation(properties.containerName),Environment:cdk().listMapper(convertCfnContainerEnvironmentVariablePropertyToCloudFormation)(properties.environment),Image:cdk().stringToCloudFormation(properties.image),Ports:cdk().listMapper(convertCfnContainerPortInfoPropertyToCloudFormation)(properties.ports)}):properties}function CfnContainerContainerPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("command","Command",properties.Command!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Command):void 0),ret.addPropertyResult("containerName","ContainerName",properties.ContainerName!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerName):void 0),ret.addPropertyResult("environment","Environment",properties.Environment!=null?cfn_parse().FromCloudFormation.getArray(CfnContainerEnvironmentVariablePropertyFromCloudFormation)(properties.Environment):void 0),ret.addPropertyResult("image","Image",properties.Image!=null?cfn_parse().FromCloudFormation.getString(properties.Image):void 0),ret.addPropertyResult("ports","Ports",properties.Ports!=null?cfn_parse().FromCloudFormation.getArray(CfnContainerPortInfoPropertyFromCloudFormation)(properties.Ports):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerHealthCheckConfigPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("healthyThreshold",cdk().validateNumber)(properties.healthyThreshold)),errors.collect(cdk().propertyValidator("intervalSeconds",cdk().validateNumber)(properties.intervalSeconds)),errors.collect(cdk().propertyValidator("path",cdk().validateString)(properties.path)),errors.collect(cdk().propertyValidator("successCodes",cdk().validateString)(properties.successCodes)),errors.collect(cdk().propertyValidator("timeoutSeconds",cdk().validateNumber)(properties.timeoutSeconds)),errors.collect(cdk().propertyValidator("unhealthyThreshold",cdk().validateNumber)(properties.unhealthyThreshold)),errors.wrap('supplied properties not correct for "HealthCheckConfigProperty"')}function convertCfnContainerHealthCheckConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerHealthCheckConfigPropertyValidator(properties).assertSuccess(),{HealthyThreshold:cdk().numberToCloudFormation(properties.healthyThreshold),IntervalSeconds:cdk().numberToCloudFormation(properties.intervalSeconds),Path:cdk().stringToCloudFormation(properties.path),SuccessCodes:cdk().stringToCloudFormation(properties.successCodes),TimeoutSeconds:cdk().numberToCloudFormation(properties.timeoutSeconds),UnhealthyThreshold:cdk().numberToCloudFormation(properties.unhealthyThreshold)}):properties}function CfnContainerHealthCheckConfigPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("healthyThreshold","HealthyThreshold",properties.HealthyThreshold!=null?cfn_parse().FromCloudFormation.getNumber(properties.HealthyThreshold):void 0),ret.addPropertyResult("intervalSeconds","IntervalSeconds",properties.IntervalSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.IntervalSeconds):void 0),ret.addPropertyResult("path","Path",properties.Path!=null?cfn_parse().FromCloudFormation.getString(properties.Path):void 0),ret.addPropertyResult("successCodes","SuccessCodes",properties.SuccessCodes!=null?cfn_parse().FromCloudFormation.getString(properties.SuccessCodes):void 0),ret.addPropertyResult("timeoutSeconds","TimeoutSeconds",properties.TimeoutSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.TimeoutSeconds):void 0),ret.addPropertyResult("unhealthyThreshold","UnhealthyThreshold",properties.UnhealthyThreshold!=null?cfn_parse().FromCloudFormation.getNumber(properties.UnhealthyThreshold):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerPublicEndpointPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("containerName",cdk().validateString)(properties.containerName)),errors.collect(cdk().propertyValidator("containerPort",cdk().validateNumber)(properties.containerPort)),errors.collect(cdk().propertyValidator("healthCheckConfig",CfnContainerHealthCheckConfigPropertyValidator)(properties.healthCheckConfig)),errors.wrap('supplied properties not correct for "PublicEndpointProperty"')}function convertCfnContainerPublicEndpointPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerPublicEndpointPropertyValidator(properties).assertSuccess(),{ContainerName:cdk().stringToCloudFormation(properties.containerName),ContainerPort:cdk().numberToCloudFormation(properties.containerPort),HealthCheckConfig:convertCfnContainerHealthCheckConfigPropertyToCloudFormation(properties.healthCheckConfig)}):properties}function CfnContainerPublicEndpointPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("containerName","ContainerName",properties.ContainerName!=null?cfn_parse().FromCloudFormation.getString(properties.ContainerName):void 0),ret.addPropertyResult("containerPort","ContainerPort",properties.ContainerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ContainerPort):void 0),ret.addPropertyResult("healthCheckConfig","HealthCheckConfig",properties.HealthCheckConfig!=null?CfnContainerHealthCheckConfigPropertyFromCloudFormation(properties.HealthCheckConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerContainerServiceDeploymentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("containers",cdk().listValidator(CfnContainerContainerPropertyValidator))(properties.containers)),errors.collect(cdk().propertyValidator("publicEndpoint",CfnContainerPublicEndpointPropertyValidator)(properties.publicEndpoint)),errors.wrap('supplied properties not correct for "ContainerServiceDeploymentProperty"')}function convertCfnContainerContainerServiceDeploymentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerContainerServiceDeploymentPropertyValidator(properties).assertSuccess(),{Containers:cdk().listMapper(convertCfnContainerContainerPropertyToCloudFormation)(properties.containers),PublicEndpoint:convertCfnContainerPublicEndpointPropertyToCloudFormation(properties.publicEndpoint)}):properties}function CfnContainerContainerServiceDeploymentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("containers","Containers",properties.Containers!=null?cfn_parse().FromCloudFormation.getArray(CfnContainerContainerPropertyFromCloudFormation)(properties.Containers):void 0),ret.addPropertyResult("publicEndpoint","PublicEndpoint",properties.PublicEndpoint!=null?CfnContainerPublicEndpointPropertyFromCloudFormation(properties.PublicEndpoint):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnContainerPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("containerServiceDeployment",CfnContainerContainerServiceDeploymentPropertyValidator)(properties.containerServiceDeployment)),errors.collect(cdk().propertyValidator("isDisabled",cdk().validateBoolean)(properties.isDisabled)),errors.collect(cdk().propertyValidator("power",cdk().requiredValidator)(properties.power)),errors.collect(cdk().propertyValidator("power",cdk().validateString)(properties.power)),errors.collect(cdk().propertyValidator("privateRegistryAccess",CfnContainerPrivateRegistryAccessPropertyValidator)(properties.privateRegistryAccess)),errors.collect(cdk().propertyValidator("publicDomainNames",cdk().listValidator(CfnContainerPublicDomainNamePropertyValidator))(properties.publicDomainNames)),errors.collect(cdk().propertyValidator("scale",cdk().requiredValidator)(properties.scale)),errors.collect(cdk().propertyValidator("scale",cdk().validateNumber)(properties.scale)),errors.collect(cdk().propertyValidator("serviceName",cdk().requiredValidator)(properties.serviceName)),errors.collect(cdk().propertyValidator("serviceName",cdk().validateString)(properties.serviceName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnContainerProps"')}function convertCfnContainerPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnContainerPropsValidator(properties).assertSuccess(),{ContainerServiceDeployment:convertCfnContainerContainerServiceDeploymentPropertyToCloudFormation(properties.containerServiceDeployment),IsDisabled:cdk().booleanToCloudFormation(properties.isDisabled),Power:cdk().stringToCloudFormation(properties.power),PrivateRegistryAccess:convertCfnContainerPrivateRegistryAccessPropertyToCloudFormation(properties.privateRegistryAccess),PublicDomainNames:cdk().listMapper(convertCfnContainerPublicDomainNamePropertyToCloudFormation)(properties.publicDomainNames),Scale:cdk().numberToCloudFormation(properties.scale),ServiceName:cdk().stringToCloudFormation(properties.serviceName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnContainerPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("containerServiceDeployment","ContainerServiceDeployment",properties.ContainerServiceDeployment!=null?CfnContainerContainerServiceDeploymentPropertyFromCloudFormation(properties.ContainerServiceDeployment):void 0),ret.addPropertyResult("isDisabled","IsDisabled",properties.IsDisabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsDisabled):void 0),ret.addPropertyResult("power","Power",properties.Power!=null?cfn_parse().FromCloudFormation.getString(properties.Power):void 0),ret.addPropertyResult("privateRegistryAccess","PrivateRegistryAccess",properties.PrivateRegistryAccess!=null?CfnContainerPrivateRegistryAccessPropertyFromCloudFormation(properties.PrivateRegistryAccess):void 0),ret.addPropertyResult("publicDomainNames","PublicDomainNames",properties.PublicDomainNames!=null?cfn_parse().FromCloudFormation.getArray(CfnContainerPublicDomainNamePropertyFromCloudFormation)(properties.PublicDomainNames):void 0),ret.addPropertyResult("scale","Scale",properties.Scale!=null?cfn_parse().FromCloudFormation.getNumber(properties.Scale):void 0),ret.addPropertyResult("serviceName","ServiceName",properties.ServiceName!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDatabase extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnDatabase",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::Database";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDatabasePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDatabase(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 isCfnDatabase(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDatabase.CFN_RESOURCE_TYPE_NAME}static arnForDatabase(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IDatabaseRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDatabase),error}return resource.databaseRef.databaseArn}_availabilityZone;_backupRetention;_caCertificateIdentifier;_masterDatabaseName;_masterUsername;_masterUserPassword;_preferredBackupWindow;_preferredMaintenanceWindow;_publiclyAccessible;_relationalDatabaseBlueprintId;_relationalDatabaseBundleId;_relationalDatabaseName;_relationalDatabaseParameters;_rotateMasterUserPassword;tags;_tagsRaw;cfnPropertyNames={availabilityZone:"AvailabilityZone",backupRetention:"BackupRetention",caCertificateIdentifier:"CaCertificateIdentifier",masterDatabaseName:"MasterDatabaseName",masterUsername:"MasterUsername",masterUserPassword:"MasterUserPassword",preferredBackupWindow:"PreferredBackupWindow",preferredMaintenanceWindow:"PreferredMaintenanceWindow",publiclyAccessible:"PubliclyAccessible",relationalDatabaseBlueprintId:"RelationalDatabaseBlueprintId",relationalDatabaseBundleId:"RelationalDatabaseBundleId",relationalDatabaseName:"RelationalDatabaseName",relationalDatabaseParameters:"RelationalDatabaseParameters",rotateMasterUserPassword:"RotateMasterUserPassword",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnDatabase.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnDatabaseProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDatabase),error}cdk().requireProperty(props,"masterDatabaseName",this),cdk().requireProperty(props,"masterUsername",this),cdk().requireProperty(props,"relationalDatabaseBlueprintId",this),cdk().requireProperty(props,"relationalDatabaseBundleId",this),cdk().requireProperty(props,"relationalDatabaseName",this),this._availabilityZone=props.availabilityZone,this._backupRetention=props.backupRetention,this._caCertificateIdentifier=props.caCertificateIdentifier,this._masterDatabaseName=props.masterDatabaseName,this._masterUsername=props.masterUsername,this._masterUserPassword=props.masterUserPassword,this._preferredBackupWindow=props.preferredBackupWindow,this._preferredMaintenanceWindow=props.preferredMaintenanceWindow,this._publiclyAccessible=props.publiclyAccessible,this._relationalDatabaseBlueprintId=props.relationalDatabaseBlueprintId,this._relationalDatabaseBundleId=props.relationalDatabaseBundleId,this._relationalDatabaseName=props.relationalDatabaseName,this._relationalDatabaseParameters=props.relationalDatabaseParameters,this._rotateMasterUserPassword=props.rotateMasterUserPassword,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::Database",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get databaseRef(){return{relationalDatabaseName:this.ref,databaseArn:this.attrDatabaseArn}}get availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get backupRetention(){return this._backupRetention}set backupRetention(value){cdk().traceProperty(this.node,"BackupRetention"),this._backupRetention=value}get caCertificateIdentifier(){return this._caCertificateIdentifier}set caCertificateIdentifier(value){cdk().traceProperty(this.node,"CaCertificateIdentifier"),this._caCertificateIdentifier=value}get masterDatabaseName(){return this._masterDatabaseName}set masterDatabaseName(value){cdk().traceProperty(this.node,"MasterDatabaseName"),this._masterDatabaseName=value}get masterUsername(){return this._masterUsername}set masterUsername(value){cdk().traceProperty(this.node,"MasterUsername"),this._masterUsername=value}get masterUserPassword(){return this._masterUserPassword}set masterUserPassword(value){cdk().traceProperty(this.node,"MasterUserPassword"),this._masterUserPassword=value}get preferredBackupWindow(){return this._preferredBackupWindow}set preferredBackupWindow(value){cdk().traceProperty(this.node,"PreferredBackupWindow"),this._preferredBackupWindow=value}get preferredMaintenanceWindow(){return this._preferredMaintenanceWindow}set preferredMaintenanceWindow(value){cdk().traceProperty(this.node,"PreferredMaintenanceWindow"),this._preferredMaintenanceWindow=value}get publiclyAccessible(){return this._publiclyAccessible}set publiclyAccessible(value){cdk().traceProperty(this.node,"PubliclyAccessible"),this._publiclyAccessible=value}get relationalDatabaseBlueprintId(){return this._relationalDatabaseBlueprintId}set relationalDatabaseBlueprintId(value){cdk().traceProperty(this.node,"RelationalDatabaseBlueprintId"),this._relationalDatabaseBlueprintId=value}get relationalDatabaseBundleId(){return this._relationalDatabaseBundleId}set relationalDatabaseBundleId(value){cdk().traceProperty(this.node,"RelationalDatabaseBundleId"),this._relationalDatabaseBundleId=value}get relationalDatabaseName(){return this._relationalDatabaseName}set relationalDatabaseName(value){cdk().traceProperty(this.node,"RelationalDatabaseName"),this._relationalDatabaseName=value}get relationalDatabaseParameters(){return this._relationalDatabaseParameters}set relationalDatabaseParameters(value){cdk().traceProperty(this.node,"RelationalDatabaseParameters"),this._relationalDatabaseParameters=value}get rotateMasterUserPassword(){return this._rotateMasterUserPassword}set rotateMasterUserPassword(value){cdk().traceProperty(this.node,"RotateMasterUserPassword"),this._rotateMasterUserPassword=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrDatabaseArn(){return cdk().Token.asString(this.getAtt("DatabaseArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{availabilityZone:this._availabilityZone,backupRetention:this._backupRetention,caCertificateIdentifier:this._caCertificateIdentifier,masterDatabaseName:this._masterDatabaseName,masterUsername:this._masterUsername,masterUserPassword:this._masterUserPassword,preferredBackupWindow:this._preferredBackupWindow,preferredMaintenanceWindow:this._preferredMaintenanceWindow,publiclyAccessible:this._publiclyAccessible,relationalDatabaseBlueprintId:this._relationalDatabaseBlueprintId,relationalDatabaseBundleId:this._relationalDatabaseBundleId,relationalDatabaseName:this._relationalDatabaseName,relationalDatabaseParameters:this._relationalDatabaseParameters,rotateMasterUserPassword:this._rotateMasterUserPassword,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",CfnDatabase.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDatabasePropsToCloudFormation(props)}}exports.CfnDatabase=CfnDatabase;function CfnDatabaseRelationalDatabaseParameterPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allowedValues",cdk().validateString)(properties.allowedValues)),errors.collect(cdk().propertyValidator("applyMethod",cdk().validateString)(properties.applyMethod)),errors.collect(cdk().propertyValidator("applyType",cdk().validateString)(properties.applyType)),errors.collect(cdk().propertyValidator("dataType",cdk().validateString)(properties.dataType)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("isModifiable",cdk().validateBoolean)(properties.isModifiable)),errors.collect(cdk().propertyValidator("parameterName",cdk().validateString)(properties.parameterName)),errors.collect(cdk().propertyValidator("parameterValue",cdk().validateString)(properties.parameterValue)),errors.wrap('supplied properties not correct for "RelationalDatabaseParameterProperty"')}function convertCfnDatabaseRelationalDatabaseParameterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDatabaseRelationalDatabaseParameterPropertyValidator(properties).assertSuccess(),{AllowedValues:cdk().stringToCloudFormation(properties.allowedValues),ApplyMethod:cdk().stringToCloudFormation(properties.applyMethod),ApplyType:cdk().stringToCloudFormation(properties.applyType),DataType:cdk().stringToCloudFormation(properties.dataType),Description:cdk().stringToCloudFormation(properties.description),IsModifiable:cdk().booleanToCloudFormation(properties.isModifiable),ParameterName:cdk().stringToCloudFormation(properties.parameterName),ParameterValue:cdk().stringToCloudFormation(properties.parameterValue)}):properties}function CfnDatabaseRelationalDatabaseParameterPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allowedValues","AllowedValues",properties.AllowedValues!=null?cfn_parse().FromCloudFormation.getString(properties.AllowedValues):void 0),ret.addPropertyResult("applyMethod","ApplyMethod",properties.ApplyMethod!=null?cfn_parse().FromCloudFormation.getString(properties.ApplyMethod):void 0),ret.addPropertyResult("applyType","ApplyType",properties.ApplyType!=null?cfn_parse().FromCloudFormation.getString(properties.ApplyType):void 0),ret.addPropertyResult("dataType","DataType",properties.DataType!=null?cfn_parse().FromCloudFormation.getString(properties.DataType):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("isModifiable","IsModifiable",properties.IsModifiable!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsModifiable):void 0),ret.addPropertyResult("parameterName","ParameterName",properties.ParameterName!=null?cfn_parse().FromCloudFormation.getString(properties.ParameterName):void 0),ret.addPropertyResult("parameterValue","ParameterValue",properties.ParameterValue!=null?cfn_parse().FromCloudFormation.getString(properties.ParameterValue):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDatabasePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("backupRetention",cdk().validateBoolean)(properties.backupRetention)),errors.collect(cdk().propertyValidator("caCertificateIdentifier",cdk().validateString)(properties.caCertificateIdentifier)),errors.collect(cdk().propertyValidator("masterDatabaseName",cdk().requiredValidator)(properties.masterDatabaseName)),errors.collect(cdk().propertyValidator("masterDatabaseName",cdk().validateString)(properties.masterDatabaseName)),errors.collect(cdk().propertyValidator("masterUserPassword",cdk().validateString)(properties.masterUserPassword)),errors.collect(cdk().propertyValidator("masterUsername",cdk().requiredValidator)(properties.masterUsername)),errors.collect(cdk().propertyValidator("masterUsername",cdk().validateString)(properties.masterUsername)),errors.collect(cdk().propertyValidator("preferredBackupWindow",cdk().validateString)(properties.preferredBackupWindow)),errors.collect(cdk().propertyValidator("preferredMaintenanceWindow",cdk().validateString)(properties.preferredMaintenanceWindow)),errors.collect(cdk().propertyValidator("publiclyAccessible",cdk().validateBoolean)(properties.publiclyAccessible)),errors.collect(cdk().propertyValidator("relationalDatabaseBlueprintId",cdk().requiredValidator)(properties.relationalDatabaseBlueprintId)),errors.collect(cdk().propertyValidator("relationalDatabaseBlueprintId",cdk().validateString)(properties.relationalDatabaseBlueprintId)),errors.collect(cdk().propertyValidator("relationalDatabaseBundleId",cdk().requiredValidator)(properties.relationalDatabaseBundleId)),errors.collect(cdk().propertyValidator("relationalDatabaseBundleId",cdk().validateString)(properties.relationalDatabaseBundleId)),errors.collect(cdk().propertyValidator("relationalDatabaseName",cdk().requiredValidator)(properties.relationalDatabaseName)),errors.collect(cdk().propertyValidator("relationalDatabaseName",cdk().validateString)(properties.relationalDatabaseName)),errors.collect(cdk().propertyValidator("relationalDatabaseParameters",cdk().listValidator(CfnDatabaseRelationalDatabaseParameterPropertyValidator))(properties.relationalDatabaseParameters)),errors.collect(cdk().propertyValidator("rotateMasterUserPassword",cdk().validateBoolean)(properties.rotateMasterUserPassword)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDatabaseProps"')}function convertCfnDatabasePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDatabasePropsValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),BackupRetention:cdk().booleanToCloudFormation(properties.backupRetention),CaCertificateIdentifier:cdk().stringToCloudFormation(properties.caCertificateIdentifier),MasterDatabaseName:cdk().stringToCloudFormation(properties.masterDatabaseName),MasterUserPassword:cdk().stringToCloudFormation(properties.masterUserPassword),MasterUsername:cdk().stringToCloudFormation(properties.masterUsername),PreferredBackupWindow:cdk().stringToCloudFormation(properties.preferredBackupWindow),PreferredMaintenanceWindow:cdk().stringToCloudFormation(properties.preferredMaintenanceWindow),PubliclyAccessible:cdk().booleanToCloudFormation(properties.publiclyAccessible),RelationalDatabaseBlueprintId:cdk().stringToCloudFormation(properties.relationalDatabaseBlueprintId),RelationalDatabaseBundleId:cdk().stringToCloudFormation(properties.relationalDatabaseBundleId),RelationalDatabaseName:cdk().stringToCloudFormation(properties.relationalDatabaseName),RelationalDatabaseParameters:cdk().listMapper(convertCfnDatabaseRelationalDatabaseParameterPropertyToCloudFormation)(properties.relationalDatabaseParameters),RotateMasterUserPassword:cdk().booleanToCloudFormation(properties.rotateMasterUserPassword),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDatabasePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("backupRetention","BackupRetention",properties.BackupRetention!=null?cfn_parse().FromCloudFormation.getBoolean(properties.BackupRetention):void 0),ret.addPropertyResult("caCertificateIdentifier","CaCertificateIdentifier",properties.CaCertificateIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.CaCertificateIdentifier):void 0),ret.addPropertyResult("masterDatabaseName","MasterDatabaseName",properties.MasterDatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.MasterDatabaseName):void 0),ret.addPropertyResult("masterUsername","MasterUsername",properties.MasterUsername!=null?cfn_parse().FromCloudFormation.getString(properties.MasterUsername):void 0),ret.addPropertyResult("masterUserPassword","MasterUserPassword",properties.MasterUserPassword!=null?cfn_parse().FromCloudFormation.getString(properties.MasterUserPassword):void 0),ret.addPropertyResult("preferredBackupWindow","PreferredBackupWindow",properties.PreferredBackupWindow!=null?cfn_parse().FromCloudFormation.getString(properties.PreferredBackupWindow):void 0),ret.addPropertyResult("preferredMaintenanceWindow","PreferredMaintenanceWindow",properties.PreferredMaintenanceWindow!=null?cfn_parse().FromCloudFormation.getString(properties.PreferredMaintenanceWindow):void 0),ret.addPropertyResult("publiclyAccessible","PubliclyAccessible",properties.PubliclyAccessible!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PubliclyAccessible):void 0),ret.addPropertyResult("relationalDatabaseBlueprintId","RelationalDatabaseBlueprintId",properties.RelationalDatabaseBlueprintId!=null?cfn_parse().FromCloudFormation.getString(properties.RelationalDatabaseBlueprintId):void 0),ret.addPropertyResult("relationalDatabaseBundleId","RelationalDatabaseBundleId",properties.RelationalDatabaseBundleId!=null?cfn_parse().FromCloudFormation.getString(properties.RelationalDatabaseBundleId):void 0),ret.addPropertyResult("relationalDatabaseName","RelationalDatabaseName",properties.RelationalDatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.RelationalDatabaseName):void 0),ret.addPropertyResult("relationalDatabaseParameters","RelationalDatabaseParameters",properties.RelationalDatabaseParameters!=null?cfn_parse().FromCloudFormation.getArray(CfnDatabaseRelationalDatabaseParameterPropertyFromCloudFormation)(properties.RelationalDatabaseParameters):void 0),ret.addPropertyResult("rotateMasterUserPassword","RotateMasterUserPassword",properties.RotateMasterUserPassword!=null?cfn_parse().FromCloudFormation.getBoolean(properties.RotateMasterUserPassword):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDisk extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnDisk",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::Disk";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDiskPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDisk(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 isCfnDisk(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDisk.CFN_RESOURCE_TYPE_NAME}static arnForDisk(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IDiskRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDisk),error}return resource.diskRef.diskArn}_addOns;_availabilityZone;_diskName;_location;_sizeInGb;tags;_tagsRaw;cfnPropertyNames={addOns:"AddOns",availabilityZone:"AvailabilityZone",diskName:"DiskName",location:"Location",sizeInGb:"SizeInGb",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnDisk.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnDiskProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDisk),error}cdk().requireProperty(props,"diskName",this),cdk().requireProperty(props,"sizeInGb",this),this._addOns=props.addOns,this._availabilityZone=props.availabilityZone,this._diskName=props.diskName,this._location=props.location,this._sizeInGb=props.sizeInGb,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::Disk",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get diskRef(){return{diskName:this.ref,diskArn:this.attrDiskArn}}get addOns(){return this._addOns}set addOns(value){cdk().traceProperty(this.node,"AddOns"),this._addOns=value}get availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get diskName(){return this._diskName}set diskName(value){cdk().traceProperty(this.node,"DiskName"),this._diskName=value}get location(){return this._location}set location(value){cdk().traceProperty(this.node,"Location"),this._location=value}get sizeInGb(){return this._sizeInGb}set sizeInGb(value){cdk().traceProperty(this.node,"SizeInGb"),this._sizeInGb=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrAttachedTo(){return cdk().Token.asString(this.getAtt("AttachedTo",cdk().ResolutionTypeHint.STRING))}get attrAttachmentState(){return cdk().Token.asString(this.getAtt("AttachmentState",cdk().ResolutionTypeHint.STRING))}get attrDiskArn(){return cdk().Token.asString(this.getAtt("DiskArn",cdk().ResolutionTypeHint.STRING))}get attrIops(){return cdk().Token.asNumber(this.getAtt("Iops",cdk().ResolutionTypeHint.NUMBER))}get attrIsAttached(){return this.getAtt("IsAttached")}get attrLocationAvailabilityZone(){return cdk().Token.asString(this.getAtt("Location.AvailabilityZone",cdk().ResolutionTypeHint.STRING))}get attrLocationRegionName(){return cdk().Token.asString(this.getAtt("Location.RegionName",cdk().ResolutionTypeHint.STRING))}get attrPath(){return cdk().Token.asString(this.getAtt("Path",cdk().ResolutionTypeHint.STRING))}get attrResourceType(){return cdk().Token.asString(this.getAtt("ResourceType",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrSupportCode(){return cdk().Token.asString(this.getAtt("SupportCode",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{addOns:this._addOns,availabilityZone:this._availabilityZone,diskName:this._diskName,location:this._location,sizeInGb:this._sizeInGb,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",CfnDisk.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDiskPropsToCloudFormation(props)}}exports.CfnDisk=CfnDisk;function CfnDiskAutoSnapshotAddOnPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("snapshotTimeOfDay",cdk().validateString)(properties.snapshotTimeOfDay)),errors.wrap('supplied properties not correct for "AutoSnapshotAddOnProperty"')}function convertCfnDiskAutoSnapshotAddOnPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDiskAutoSnapshotAddOnPropertyValidator(properties).assertSuccess(),{SnapshotTimeOfDay:cdk().stringToCloudFormation(properties.snapshotTimeOfDay)}):properties}function CfnDiskAutoSnapshotAddOnPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("snapshotTimeOfDay","SnapshotTimeOfDay",properties.SnapshotTimeOfDay!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotTimeOfDay):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDiskAddOnPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("addOnType",cdk().requiredValidator)(properties.addOnType)),errors.collect(cdk().propertyValidator("addOnType",cdk().validateString)(properties.addOnType)),errors.collect(cdk().propertyValidator("autoSnapshotAddOnRequest",CfnDiskAutoSnapshotAddOnPropertyValidator)(properties.autoSnapshotAddOnRequest)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.wrap('supplied properties not correct for "AddOnProperty"')}function convertCfnDiskAddOnPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDiskAddOnPropertyValidator(properties).assertSuccess(),{AddOnType:cdk().stringToCloudFormation(properties.addOnType),AutoSnapshotAddOnRequest:convertCfnDiskAutoSnapshotAddOnPropertyToCloudFormation(properties.autoSnapshotAddOnRequest),Status:cdk().stringToCloudFormation(properties.status)}):properties}function CfnDiskAddOnPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("addOnType","AddOnType",properties.AddOnType!=null?cfn_parse().FromCloudFormation.getString(properties.AddOnType):void 0),ret.addPropertyResult("autoSnapshotAddOnRequest","AutoSnapshotAddOnRequest",properties.AutoSnapshotAddOnRequest!=null?CfnDiskAutoSnapshotAddOnPropertyFromCloudFormation(properties.AutoSnapshotAddOnRequest):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDiskLocationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("regionName",cdk().validateString)(properties.regionName)),errors.wrap('supplied properties not correct for "LocationProperty"')}function convertCfnDiskLocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDiskLocationPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),RegionName:cdk().stringToCloudFormation(properties.regionName)}):properties}function CfnDiskLocationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDiskPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("addOns",cdk().listValidator(CfnDiskAddOnPropertyValidator))(properties.addOns)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("diskName",cdk().requiredValidator)(properties.diskName)),errors.collect(cdk().propertyValidator("diskName",cdk().validateString)(properties.diskName)),errors.collect(cdk().propertyValidator("location",CfnDiskLocationPropertyValidator)(properties.location)),errors.collect(cdk().propertyValidator("sizeInGb",cdk().requiredValidator)(properties.sizeInGb)),errors.collect(cdk().propertyValidator("sizeInGb",cdk().validateNumber)(properties.sizeInGb)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDiskProps"')}function convertCfnDiskPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDiskPropsValidator(properties).assertSuccess(),{AddOns:cdk().listMapper(convertCfnDiskAddOnPropertyToCloudFormation)(properties.addOns),AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),DiskName:cdk().stringToCloudFormation(properties.diskName),Location:convertCfnDiskLocationPropertyToCloudFormation(properties.location),SizeInGb:cdk().numberToCloudFormation(properties.sizeInGb),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDiskPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("addOns","AddOns",properties.AddOns!=null?cfn_parse().FromCloudFormation.getArray(CfnDiskAddOnPropertyFromCloudFormation)(properties.AddOns):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("diskName","DiskName",properties.DiskName!=null?cfn_parse().FromCloudFormation.getString(properties.DiskName):void 0),ret.addPropertyResult("location","Location",properties.Location!=null?CfnDiskLocationPropertyFromCloudFormation(properties.Location):void 0),ret.addPropertyResult("sizeInGb","SizeInGb",properties.SizeInGb!=null?cfn_parse().FromCloudFormation.getNumber(properties.SizeInGb):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDistribution extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnDistribution",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::Distribution";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDistributionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDistribution(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnDistribution(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDistribution.CFN_RESOURCE_TYPE_NAME}static arnForDistribution(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IDistributionRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDistribution),error}return resource.distributionRef.distributionArn}_bundleId;_cacheBehaviors;_cacheBehaviorSettings;_certificateName;_defaultCacheBehavior;_distributionName;_ipAddressType;_isEnabled;_origin;tags;_tagsRaw;cfnPropertyNames={bundleId:"BundleId",cacheBehaviors:"CacheBehaviors",cacheBehaviorSettings:"CacheBehaviorSettings",certificateName:"CertificateName",defaultCacheBehavior:"DefaultCacheBehavior",distributionName:"DistributionName",ipAddressType:"IpAddressType",isEnabled:"IsEnabled",origin:"Origin",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnDistribution.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnDistributionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDistribution),error}cdk().requireProperty(props,"bundleId",this),cdk().requireProperty(props,"defaultCacheBehavior",this),cdk().requireProperty(props,"distributionName",this),cdk().requireProperty(props,"origin",this),this._bundleId=props.bundleId,this._cacheBehaviors=props.cacheBehaviors,this._cacheBehaviorSettings=props.cacheBehaviorSettings,this._certificateName=props.certificateName,this._defaultCacheBehavior=props.defaultCacheBehavior,this._distributionName=props.distributionName,this._ipAddressType=props.ipAddressType,this._isEnabled=props.isEnabled,this._origin=props.origin,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::Distribution",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get distributionRef(){return{distributionName:this.ref,distributionArn:this.attrDistributionArn}}get bundleId(){return this._bundleId}set bundleId(value){cdk().traceProperty(this.node,"BundleId"),this._bundleId=value}get cacheBehaviors(){return this._cacheBehaviors}set cacheBehaviors(value){cdk().traceProperty(this.node,"CacheBehaviors"),this._cacheBehaviors=value}get cacheBehaviorSettings(){return this._cacheBehaviorSettings}set cacheBehaviorSettings(value){cdk().traceProperty(this.node,"CacheBehaviorSettings"),this._cacheBehaviorSettings=value}get certificateName(){return this._certificateName}set certificateName(value){cdk().traceProperty(this.node,"CertificateName"),this._certificateName=value}get defaultCacheBehavior(){return this._defaultCacheBehavior}set defaultCacheBehavior(value){cdk().traceProperty(this.node,"DefaultCacheBehavior"),this._defaultCacheBehavior=value}get distributionName(){return this._distributionName}set distributionName(value){cdk().traceProperty(this.node,"DistributionName"),this._distributionName=value}get ipAddressType(){return this._ipAddressType}set ipAddressType(value){cdk().traceProperty(this.node,"IpAddressType"),this._ipAddressType=value}get isEnabled(){return this._isEnabled}set isEnabled(value){cdk().traceProperty(this.node,"IsEnabled"),this._isEnabled=value}get origin(){return this._origin}set origin(value){cdk().traceProperty(this.node,"Origin"),this._origin=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrAbleToUpdateBundle(){return this.getAtt("AbleToUpdateBundle")}get attrDistributionArn(){return cdk().Token.asString(this.getAtt("DistributionArn",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{bundleId:this._bundleId,cacheBehaviors:this._cacheBehaviors,cacheBehaviorSettings:this._cacheBehaviorSettings,certificateName:this._certificateName,defaultCacheBehavior:this._defaultCacheBehavior,distributionName:this._distributionName,ipAddressType:this._ipAddressType,isEnabled:this._isEnabled,origin:this._origin,tags:this.tags.renderTags()}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnDistribution.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDistributionPropsToCloudFormation(props)}}exports.CfnDistribution=CfnDistribution;function CfnDistributionInputOriginPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("protocolPolicy",cdk().validateString)(properties.protocolPolicy)),errors.collect(cdk().propertyValidator("regionName",cdk().validateString)(properties.regionName)),errors.wrap('supplied properties not correct for "InputOriginProperty"')}function convertCfnDistributionInputOriginPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionInputOriginPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name),ProtocolPolicy:cdk().stringToCloudFormation(properties.protocolPolicy),RegionName:cdk().stringToCloudFormation(properties.regionName)}):properties}function CfnDistributionInputOriginPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("protocolPolicy","ProtocolPolicy",properties.ProtocolPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.ProtocolPolicy):void 0),ret.addPropertyResult("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionCacheBehaviorPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("behavior",cdk().validateString)(properties.behavior)),errors.wrap('supplied properties not correct for "CacheBehaviorProperty"')}function convertCfnDistributionCacheBehaviorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionCacheBehaviorPropertyValidator(properties).assertSuccess(),{Behavior:cdk().stringToCloudFormation(properties.behavior)}):properties}function CfnDistributionCacheBehaviorPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("behavior","Behavior",properties.Behavior!=null?cfn_parse().FromCloudFormation.getString(properties.Behavior):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionCookieObjectPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cookiesAllowList",cdk().listValidator(cdk().validateString))(properties.cookiesAllowList)),errors.collect(cdk().propertyValidator("option",cdk().validateString)(properties.option)),errors.wrap('supplied properties not correct for "CookieObjectProperty"')}function convertCfnDistributionCookieObjectPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionCookieObjectPropertyValidator(properties).assertSuccess(),{CookiesAllowList:cdk().listMapper(cdk().stringToCloudFormation)(properties.cookiesAllowList),Option:cdk().stringToCloudFormation(properties.option)}):properties}function CfnDistributionCookieObjectPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cookiesAllowList","CookiesAllowList",properties.CookiesAllowList!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CookiesAllowList):void 0),ret.addPropertyResult("option","Option",properties.Option!=null?cfn_parse().FromCloudFormation.getString(properties.Option):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionHeaderObjectPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("headersAllowList",cdk().listValidator(cdk().validateString))(properties.headersAllowList)),errors.collect(cdk().propertyValidator("option",cdk().validateString)(properties.option)),errors.wrap('supplied properties not correct for "HeaderObjectProperty"')}function convertCfnDistributionHeaderObjectPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionHeaderObjectPropertyValidator(properties).assertSuccess(),{HeadersAllowList:cdk().listMapper(cdk().stringToCloudFormation)(properties.headersAllowList),Option:cdk().stringToCloudFormation(properties.option)}):properties}function CfnDistributionHeaderObjectPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("headersAllowList","HeadersAllowList",properties.HeadersAllowList!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.HeadersAllowList):void 0),ret.addPropertyResult("option","Option",properties.Option!=null?cfn_parse().FromCloudFormation.getString(properties.Option):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionQueryStringObjectPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("option",cdk().validateBoolean)(properties.option)),errors.collect(cdk().propertyValidator("queryStringsAllowList",cdk().listValidator(cdk().validateString))(properties.queryStringsAllowList)),errors.wrap('supplied properties not correct for "QueryStringObjectProperty"')}function convertCfnDistributionQueryStringObjectPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionQueryStringObjectPropertyValidator(properties).assertSuccess(),{Option:cdk().booleanToCloudFormation(properties.option),QueryStringsAllowList:cdk().listMapper(cdk().stringToCloudFormation)(properties.queryStringsAllowList)}):properties}function CfnDistributionQueryStringObjectPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("option","Option",properties.Option!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Option):void 0),ret.addPropertyResult("queryStringsAllowList","QueryStringsAllowList",properties.QueryStringsAllowList!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.QueryStringsAllowList):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionCacheSettingsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allowedHttpMethods",cdk().validateString)(properties.allowedHttpMethods)),errors.collect(cdk().propertyValidator("cachedHttpMethods",cdk().validateString)(properties.cachedHttpMethods)),errors.collect(cdk().propertyValidator("defaultTtl",cdk().validateNumber)(properties.defaultTtl)),errors.collect(cdk().propertyValidator("forwardedCookies",CfnDistributionCookieObjectPropertyValidator)(properties.forwardedCookies)),errors.collect(cdk().propertyValidator("forwardedHeaders",CfnDistributionHeaderObjectPropertyValidator)(properties.forwardedHeaders)),errors.collect(cdk().propertyValidator("forwardedQueryStrings",CfnDistributionQueryStringObjectPropertyValidator)(properties.forwardedQueryStrings)),errors.collect(cdk().propertyValidator("maximumTtl",cdk().validateNumber)(properties.maximumTtl)),errors.collect(cdk().propertyValidator("minimumTtl",cdk().validateNumber)(properties.minimumTtl)),errors.wrap('supplied properties not correct for "CacheSettingsProperty"')}function convertCfnDistributionCacheSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionCacheSettingsPropertyValidator(properties).assertSuccess(),{AllowedHTTPMethods:cdk().stringToCloudFormation(properties.allowedHttpMethods),CachedHTTPMethods:cdk().stringToCloudFormation(properties.cachedHttpMethods),DefaultTTL:cdk().numberToCloudFormation(properties.defaultTtl),ForwardedCookies:convertCfnDistributionCookieObjectPropertyToCloudFormation(properties.forwardedCookies),ForwardedHeaders:convertCfnDistributionHeaderObjectPropertyToCloudFormation(properties.forwardedHeaders),ForwardedQueryStrings:convertCfnDistributionQueryStringObjectPropertyToCloudFormation(properties.forwardedQueryStrings),MaximumTTL:cdk().numberToCloudFormation(properties.maximumTtl),MinimumTTL:cdk().numberToCloudFormation(properties.minimumTtl)}):properties}function CfnDistributionCacheSettingsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allowedHttpMethods","AllowedHTTPMethods",properties.AllowedHTTPMethods!=null?cfn_parse().FromCloudFormation.getString(properties.AllowedHTTPMethods):void 0),ret.addPropertyResult("cachedHttpMethods","CachedHTTPMethods",properties.CachedHTTPMethods!=null?cfn_parse().FromCloudFormation.getString(properties.CachedHTTPMethods):void 0),ret.addPropertyResult("defaultTtl","DefaultTTL",properties.DefaultTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.DefaultTTL):void 0),ret.addPropertyResult("forwardedCookies","ForwardedCookies",properties.ForwardedCookies!=null?CfnDistributionCookieObjectPropertyFromCloudFormation(properties.ForwardedCookies):void 0),ret.addPropertyResult("forwardedHeaders","ForwardedHeaders",properties.ForwardedHeaders!=null?CfnDistributionHeaderObjectPropertyFromCloudFormation(properties.ForwardedHeaders):void 0),ret.addPropertyResult("forwardedQueryStrings","ForwardedQueryStrings",properties.ForwardedQueryStrings!=null?CfnDistributionQueryStringObjectPropertyFromCloudFormation(properties.ForwardedQueryStrings):void 0),ret.addPropertyResult("maximumTtl","MaximumTTL",properties.MaximumTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaximumTTL):void 0),ret.addPropertyResult("minimumTtl","MinimumTTL",properties.MinimumTTL!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinimumTTL):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionCacheBehaviorPerPathPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("behavior",cdk().validateString)(properties.behavior)),errors.collect(cdk().propertyValidator("path",cdk().validateString)(properties.path)),errors.wrap('supplied properties not correct for "CacheBehaviorPerPathProperty"')}function convertCfnDistributionCacheBehaviorPerPathPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionCacheBehaviorPerPathPropertyValidator(properties).assertSuccess(),{Behavior:cdk().stringToCloudFormation(properties.behavior),Path:cdk().stringToCloudFormation(properties.path)}):properties}function CfnDistributionCacheBehaviorPerPathPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("behavior","Behavior",properties.Behavior!=null?cfn_parse().FromCloudFormation.getString(properties.Behavior):void 0),ret.addPropertyResult("path","Path",properties.Path!=null?cfn_parse().FromCloudFormation.getString(properties.Path):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDistributionPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("bundleId",cdk().requiredValidator)(properties.bundleId)),errors.collect(cdk().propertyValidator("bundleId",cdk().validateString)(properties.bundleId)),errors.collect(cdk().propertyValidator("cacheBehaviorSettings",CfnDistributionCacheSettingsPropertyValidator)(properties.cacheBehaviorSettings)),errors.collect(cdk().propertyValidator("cacheBehaviors",cdk().listValidator(CfnDistributionCacheBehaviorPerPathPropertyValidator))(properties.cacheBehaviors)),errors.collect(cdk().propertyValidator("certificateName",cdk().validateString)(properties.certificateName)),errors.collect(cdk().propertyValidator("defaultCacheBehavior",cdk().requiredValidator)(properties.defaultCacheBehavior)),errors.collect(cdk().propertyValidator("defaultCacheBehavior",CfnDistributionCacheBehaviorPropertyValidator)(properties.defaultCacheBehavior)),errors.collect(cdk().propertyValidator("distributionName",cdk().requiredValidator)(properties.distributionName)),errors.collect(cdk().propertyValidator("distributionName",cdk().validateString)(properties.distributionName)),errors.collect(cdk().propertyValidator("ipAddressType",cdk().validateString)(properties.ipAddressType)),errors.collect(cdk().propertyValidator("isEnabled",cdk().validateBoolean)(properties.isEnabled)),errors.collect(cdk().propertyValidator("origin",cdk().requiredValidator)(properties.origin)),errors.collect(cdk().propertyValidator("origin",CfnDistributionInputOriginPropertyValidator)(properties.origin)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDistributionProps"')}function convertCfnDistributionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDistributionPropsValidator(properties).assertSuccess(),{BundleId:cdk().stringToCloudFormation(properties.bundleId),CacheBehaviorSettings:convertCfnDistributionCacheSettingsPropertyToCloudFormation(properties.cacheBehaviorSettings),CacheBehaviors:cdk().listMapper(convertCfnDistributionCacheBehaviorPerPathPropertyToCloudFormation)(properties.cacheBehaviors),CertificateName:cdk().stringToCloudFormation(properties.certificateName),DefaultCacheBehavior:convertCfnDistributionCacheBehaviorPropertyToCloudFormation(properties.defaultCacheBehavior),DistributionName:cdk().stringToCloudFormation(properties.distributionName),IpAddressType:cdk().stringToCloudFormation(properties.ipAddressType),IsEnabled:cdk().booleanToCloudFormation(properties.isEnabled),Origin:convertCfnDistributionInputOriginPropertyToCloudFormation(properties.origin),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDistributionPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("bundleId","BundleId",properties.BundleId!=null?cfn_parse().FromCloudFormation.getString(properties.BundleId):void 0),ret.addPropertyResult("cacheBehaviors","CacheBehaviors",properties.CacheBehaviors!=null?cfn_parse().FromCloudFormation.getArray(CfnDistributionCacheBehaviorPerPathPropertyFromCloudFormation)(properties.CacheBehaviors):void 0),ret.addPropertyResult("cacheBehaviorSettings","CacheBehaviorSettings",properties.CacheBehaviorSettings!=null?CfnDistributionCacheSettingsPropertyFromCloudFormation(properties.CacheBehaviorSettings):void 0),ret.addPropertyResult("certificateName","CertificateName",properties.CertificateName!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateName):void 0),ret.addPropertyResult("defaultCacheBehavior","DefaultCacheBehavior",properties.DefaultCacheBehavior!=null?CfnDistributionCacheBehaviorPropertyFromCloudFormation(properties.DefaultCacheBehavior):void 0),ret.addPropertyResult("distributionName","DistributionName",properties.DistributionName!=null?cfn_parse().FromCloudFormation.getString(properties.DistributionName):void 0),ret.addPropertyResult("ipAddressType","IpAddressType",properties.IpAddressType!=null?cfn_parse().FromCloudFormation.getString(properties.IpAddressType):void 0),ret.addPropertyResult("isEnabled","IsEnabled",properties.IsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsEnabled):void 0),ret.addPropertyResult("origin","Origin",properties.Origin!=null?CfnDistributionInputOriginPropertyFromCloudFormation(properties.Origin):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnInstance extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnInstance",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::Instance";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInstancePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnInstance(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 isCfnInstance(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnInstance.CFN_RESOURCE_TYPE_NAME}static arnForInstance(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IInstanceRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForInstance),error}return resource.instanceRef.instanceArn}_addOns;_availabilityZone;_blueprintId;_bundleId;_hardware;_instanceName;_keyPairName;_location;_networking;_state;tags;_tagsRaw;_userData;cfnPropertyNames={addOns:"AddOns",availabilityZone:"AvailabilityZone",blueprintId:"BlueprintId",bundleId:"BundleId",hardware:"Hardware",instanceName:"InstanceName",keyPairName:"KeyPairName",location:"Location",networking:"Networking",state:"State",tags:"Tags",userData:"UserData"};constructor(scope,id,props){super(scope,id,{type:CfnInstance.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnInstanceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInstance),error}cdk().requireProperty(props,"blueprintId",this),cdk().requireProperty(props,"bundleId",this),cdk().requireProperty(props,"instanceName",this),this._addOns=props.addOns,this._availabilityZone=props.availabilityZone,this._blueprintId=props.blueprintId,this._bundleId=props.bundleId,this._hardware=props.hardware,this._instanceName=props.instanceName,this._keyPairName=props.keyPairName,this._location=props.location,this._networking=props.networking,this._state=props.state,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::Instance",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._userData=props.userData}get instanceRef(){return{instanceName:this.ref,instanceArn:this.attrInstanceArn}}get addOns(){return this._addOns}set addOns(value){cdk().traceProperty(this.node,"AddOns"),this._addOns=value}get availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get blueprintId(){return this._blueprintId}set blueprintId(value){cdk().traceProperty(this.node,"BlueprintId"),this._blueprintId=value}get bundleId(){return this._bundleId}set bundleId(value){cdk().traceProperty(this.node,"BundleId"),this._bundleId=value}get hardware(){return this._hardware}set hardware(value){cdk().traceProperty(this.node,"Hardware"),this._hardware=value}get instanceName(){return this._instanceName}set instanceName(value){cdk().traceProperty(this.node,"InstanceName"),this._instanceName=value}get keyPairName(){return this._keyPairName}set keyPairName(value){cdk().traceProperty(this.node,"KeyPairName"),this._keyPairName=value}get location(){return this._location}set location(value){cdk().traceProperty(this.node,"Location"),this._location=value}get networking(){return this._networking}set networking(value){cdk().traceProperty(this.node,"Networking"),this._networking=value}get state(){return this._state}set state(value){cdk().traceProperty(this.node,"State"),this._state=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get userData(){return this._userData}set userData(value){cdk().traceProperty(this.node,"UserData"),this._userData=value}get attrHardwareCpuCount(){return cdk().Token.asNumber(this.getAtt("Hardware.CpuCount",cdk().ResolutionTypeHint.NUMBER))}get attrHardwareRamSizeInGb(){return cdk().Token.asNumber(this.getAtt("Hardware.RamSizeInGb",cdk().ResolutionTypeHint.NUMBER))}get attrInstanceArn(){return cdk().Token.asString(this.getAtt("InstanceArn",cdk().ResolutionTypeHint.STRING))}get attrIpv6Addresses(){return cdk().Token.asList(this.getAtt("Ipv6Addresses",cdk().ResolutionTypeHint.STRING_LIST))}get attrIsStaticIp(){return this.getAtt("IsStaticIp")}get attrLocationAvailabilityZone(){return cdk().Token.asString(this.getAtt("Location.AvailabilityZone",cdk().ResolutionTypeHint.STRING))}get attrLocationRegionName(){return cdk().Token.asString(this.getAtt("Location.RegionName",cdk().ResolutionTypeHint.STRING))}get attrNetworkingMonthlyTransferGbPerMonthAllocated(){return cdk().Token.asString(this.getAtt("Networking.MonthlyTransfer.GbPerMonthAllocated",cdk().ResolutionTypeHint.STRING))}get attrPrivateIpAddress(){return cdk().Token.asString(this.getAtt("PrivateIpAddress",cdk().ResolutionTypeHint.STRING))}get attrPublicIpAddress(){return cdk().Token.asString(this.getAtt("PublicIpAddress",cdk().ResolutionTypeHint.STRING))}get attrResourceType(){return cdk().Token.asString(this.getAtt("ResourceType",cdk().ResolutionTypeHint.STRING))}get attrSshKeyName(){return cdk().Token.asString(this.getAtt("SshKeyName",cdk().ResolutionTypeHint.STRING))}get attrStateCode(){return cdk().Token.asNumber(this.getAtt("State.Code",cdk().ResolutionTypeHint.NUMBER))}get attrStateName(){return cdk().Token.asString(this.getAtt("State.Name",cdk().ResolutionTypeHint.STRING))}get attrSupportCode(){return cdk().Token.asString(this.getAtt("SupportCode",cdk().ResolutionTypeHint.STRING))}get attrUserName(){return cdk().Token.asString(this.getAtt("UserName",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{addOns:this._addOns,availabilityZone:this._availabilityZone,blueprintId:this._blueprintId,bundleId:this._bundleId,hardware:this._hardware,instanceName:this._instanceName,keyPairName:this._keyPairName,location:this._location,networking:this._networking,state:this._state,tags:this.tags.renderTags(),userData:this._userData}}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",CfnInstance.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnInstancePropsToCloudFormation(props)}}exports.CfnInstance=CfnInstance;function CfnInstancePortPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("accessDirection",cdk().validateString)(properties.accessDirection)),errors.collect(cdk().propertyValidator("accessFrom",cdk().validateString)(properties.accessFrom)),errors.collect(cdk().propertyValidator("accessType",cdk().validateString)(properties.accessType)),errors.collect(cdk().propertyValidator("cidrListAliases",cdk().listValidator(cdk().validateString))(properties.cidrListAliases)),errors.collect(cdk().propertyValidator("cidrs",cdk().listValidator(cdk().validateString))(properties.cidrs)),errors.collect(cdk().propertyValidator("commonName",cdk().validateString)(properties.commonName)),errors.collect(cdk().propertyValidator("fromPort",cdk().validateNumber)(properties.fromPort)),errors.collect(cdk().propertyValidator("ipv6Cidrs",cdk().listValidator(cdk().validateString))(properties.ipv6Cidrs)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("toPort",cdk().validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "PortProperty"')}function convertCfnInstancePortPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstancePortPropertyValidator(properties).assertSuccess(),{AccessDirection:cdk().stringToCloudFormation(properties.accessDirection),AccessFrom:cdk().stringToCloudFormation(properties.accessFrom),AccessType:cdk().stringToCloudFormation(properties.accessType),CidrListAliases:cdk().listMapper(cdk().stringToCloudFormation)(properties.cidrListAliases),Cidrs:cdk().listMapper(cdk().stringToCloudFormation)(properties.cidrs),CommonName:cdk().stringToCloudFormation(properties.commonName),FromPort:cdk().numberToCloudFormation(properties.fromPort),Ipv6Cidrs:cdk().listMapper(cdk().stringToCloudFormation)(properties.ipv6Cidrs),Protocol:cdk().stringToCloudFormation(properties.protocol),ToPort:cdk().numberToCloudFormation(properties.toPort)}):properties}function CfnInstancePortPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("accessDirection","AccessDirection",properties.AccessDirection!=null?cfn_parse().FromCloudFormation.getString(properties.AccessDirection):void 0),ret.addPropertyResult("accessFrom","AccessFrom",properties.AccessFrom!=null?cfn_parse().FromCloudFormation.getString(properties.AccessFrom):void 0),ret.addPropertyResult("accessType","AccessType",properties.AccessType!=null?cfn_parse().FromCloudFormation.getString(properties.AccessType):void 0),ret.addPropertyResult("cidrListAliases","CidrListAliases",properties.CidrListAliases!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CidrListAliases):void 0),ret.addPropertyResult("cidrs","Cidrs",properties.Cidrs!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Cidrs):void 0),ret.addPropertyResult("commonName","CommonName",properties.CommonName!=null?cfn_parse().FromCloudFormation.getString(properties.CommonName):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("ipv6Cidrs","Ipv6Cidrs",properties.Ipv6Cidrs!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Ipv6Cidrs):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceMonthlyTransferPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("gbPerMonthAllocated",cdk().validateString)(properties.gbPerMonthAllocated)),errors.wrap('supplied properties not correct for "MonthlyTransferProperty"')}function convertCfnInstanceMonthlyTransferPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceMonthlyTransferPropertyValidator(properties).assertSuccess(),{GbPerMonthAllocated:cdk().stringToCloudFormation(properties.gbPerMonthAllocated)}):properties}function CfnInstanceMonthlyTransferPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("gbPerMonthAllocated","GbPerMonthAllocated",properties.GbPerMonthAllocated!=null?cfn_parse().FromCloudFormation.getString(properties.GbPerMonthAllocated):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceNetworkingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("monthlyTransfer",CfnInstanceMonthlyTransferPropertyValidator)(properties.monthlyTransfer)),errors.collect(cdk().propertyValidator("ports",cdk().requiredValidator)(properties.ports)),errors.collect(cdk().propertyValidator("ports",cdk().listValidator(CfnInstancePortPropertyValidator))(properties.ports)),errors.wrap('supplied properties not correct for "NetworkingProperty"')}function convertCfnInstanceNetworkingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceNetworkingPropertyValidator(properties).assertSuccess(),{MonthlyTransfer:convertCfnInstanceMonthlyTransferPropertyToCloudFormation(properties.monthlyTransfer),Ports:cdk().listMapper(convertCfnInstancePortPropertyToCloudFormation)(properties.ports)}):properties}function CfnInstanceNetworkingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("monthlyTransfer","MonthlyTransfer",properties.MonthlyTransfer!=null?CfnInstanceMonthlyTransferPropertyFromCloudFormation(properties.MonthlyTransfer):void 0),ret.addPropertyResult("ports","Ports",properties.Ports!=null?cfn_parse().FromCloudFormation.getArray(CfnInstancePortPropertyFromCloudFormation)(properties.Ports):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceStatePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("code",cdk().validateNumber)(properties.code)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "StateProperty"')}function convertCfnInstanceStatePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceStatePropertyValidator(properties).assertSuccess(),{Code:cdk().numberToCloudFormation(properties.code),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnInstanceStatePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("code","Code",properties.Code!=null?cfn_parse().FromCloudFormation.getNumber(properties.Code):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceAutoSnapshotAddOnPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("snapshotTimeOfDay",cdk().validateString)(properties.snapshotTimeOfDay)),errors.wrap('supplied properties not correct for "AutoSnapshotAddOnProperty"')}function convertCfnInstanceAutoSnapshotAddOnPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceAutoSnapshotAddOnPropertyValidator(properties).assertSuccess(),{SnapshotTimeOfDay:cdk().stringToCloudFormation(properties.snapshotTimeOfDay)}):properties}function CfnInstanceAutoSnapshotAddOnPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("snapshotTimeOfDay","SnapshotTimeOfDay",properties.SnapshotTimeOfDay!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotTimeOfDay):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceAddOnPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("addOnType",cdk().requiredValidator)(properties.addOnType)),errors.collect(cdk().propertyValidator("addOnType",cdk().validateString)(properties.addOnType)),errors.collect(cdk().propertyValidator("autoSnapshotAddOnRequest",CfnInstanceAutoSnapshotAddOnPropertyValidator)(properties.autoSnapshotAddOnRequest)),errors.collect(cdk().propertyValidator("status",cdk().validateString)(properties.status)),errors.wrap('supplied properties not correct for "AddOnProperty"')}function convertCfnInstanceAddOnPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceAddOnPropertyValidator(properties).assertSuccess(),{AddOnType:cdk().stringToCloudFormation(properties.addOnType),AutoSnapshotAddOnRequest:convertCfnInstanceAutoSnapshotAddOnPropertyToCloudFormation(properties.autoSnapshotAddOnRequest),Status:cdk().stringToCloudFormation(properties.status)}):properties}function CfnInstanceAddOnPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("addOnType","AddOnType",properties.AddOnType!=null?cfn_parse().FromCloudFormation.getString(properties.AddOnType):void 0),ret.addPropertyResult("autoSnapshotAddOnRequest","AutoSnapshotAddOnRequest",properties.AutoSnapshotAddOnRequest!=null?CfnInstanceAutoSnapshotAddOnPropertyFromCloudFormation(properties.AutoSnapshotAddOnRequest):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?cfn_parse().FromCloudFormation.getString(properties.Status):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceDiskPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachedTo",cdk().validateString)(properties.attachedTo)),errors.collect(cdk().propertyValidator("attachmentState",cdk().validateString)(properties.attachmentState)),errors.collect(cdk().propertyValidator("diskName",cdk().requiredValidator)(properties.diskName)),errors.collect(cdk().propertyValidator("diskName",cdk().validateString)(properties.diskName)),errors.collect(cdk().propertyValidator("iops",cdk().validateNumber)(properties.iops)),errors.collect(cdk().propertyValidator("isSystemDisk",cdk().validateBoolean)(properties.isSystemDisk)),errors.collect(cdk().propertyValidator("path",cdk().requiredValidator)(properties.path)),errors.collect(cdk().propertyValidator("path",cdk().validateString)(properties.path)),errors.collect(cdk().propertyValidator("sizeInGb",cdk().validateString)(properties.sizeInGb)),errors.wrap('supplied properties not correct for "DiskProperty"')}function convertCfnInstanceDiskPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceDiskPropertyValidator(properties).assertSuccess(),{AttachedTo:cdk().stringToCloudFormation(properties.attachedTo),AttachmentState:cdk().stringToCloudFormation(properties.attachmentState),DiskName:cdk().stringToCloudFormation(properties.diskName),IOPS:cdk().numberToCloudFormation(properties.iops),IsSystemDisk:cdk().booleanToCloudFormation(properties.isSystemDisk),Path:cdk().stringToCloudFormation(properties.path),SizeInGb:cdk().stringToCloudFormation(properties.sizeInGb)}):properties}function CfnInstanceDiskPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachedTo","AttachedTo",properties.AttachedTo!=null?cfn_parse().FromCloudFormation.getString(properties.AttachedTo):void 0),ret.addPropertyResult("attachmentState","AttachmentState",properties.AttachmentState!=null?cfn_parse().FromCloudFormation.getString(properties.AttachmentState):void 0),ret.addPropertyResult("diskName","DiskName",properties.DiskName!=null?cfn_parse().FromCloudFormation.getString(properties.DiskName):void 0),ret.addPropertyResult("iops","IOPS",properties.IOPS!=null?cfn_parse().FromCloudFormation.getNumber(properties.IOPS):void 0),ret.addPropertyResult("isSystemDisk","IsSystemDisk",properties.IsSystemDisk!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsSystemDisk):void 0),ret.addPropertyResult("path","Path",properties.Path!=null?cfn_parse().FromCloudFormation.getString(properties.Path):void 0),ret.addPropertyResult("sizeInGb","SizeInGb",properties.SizeInGb!=null?cfn_parse().FromCloudFormation.getString(properties.SizeInGb):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceHardwarePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cpuCount",cdk().validateNumber)(properties.cpuCount)),errors.collect(cdk().propertyValidator("disks",cdk().listValidator(CfnInstanceDiskPropertyValidator))(properties.disks)),errors.collect(cdk().propertyValidator("ramSizeInGb",cdk().validateNumber)(properties.ramSizeInGb)),errors.wrap('supplied properties not correct for "HardwareProperty"')}function convertCfnInstanceHardwarePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceHardwarePropertyValidator(properties).assertSuccess(),{CpuCount:cdk().numberToCloudFormation(properties.cpuCount),Disks:cdk().listMapper(convertCfnInstanceDiskPropertyToCloudFormation)(properties.disks),RamSizeInGb:cdk().numberToCloudFormation(properties.ramSizeInGb)}):properties}function CfnInstanceHardwarePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cpuCount","CpuCount",properties.CpuCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.CpuCount):void 0),ret.addPropertyResult("disks","Disks",properties.Disks!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceDiskPropertyFromCloudFormation)(properties.Disks):void 0),ret.addPropertyResult("ramSizeInGb","RamSizeInGb",properties.RamSizeInGb!=null?cfn_parse().FromCloudFormation.getNumber(properties.RamSizeInGb):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceLocationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("regionName",cdk().validateString)(properties.regionName)),errors.wrap('supplied properties not correct for "LocationProperty"')}function convertCfnInstanceLocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceLocationPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),RegionName:cdk().stringToCloudFormation(properties.regionName)}):properties}function CfnInstanceLocationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstancePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("addOns",cdk().listValidator(CfnInstanceAddOnPropertyValidator))(properties.addOns)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("blueprintId",cdk().requiredValidator)(properties.blueprintId)),errors.collect(cdk().propertyValidator("blueprintId",cdk().validateString)(properties.blueprintId)),errors.collect(cdk().propertyValidator("bundleId",cdk().requiredValidator)(properties.bundleId)),errors.collect(cdk().propertyValidator("bundleId",cdk().validateString)(properties.bundleId)),errors.collect(cdk().propertyValidator("hardware",CfnInstanceHardwarePropertyValidator)(properties.hardware)),errors.collect(cdk().propertyValidator("instanceName",cdk().requiredValidator)(properties.instanceName)),errors.collect(cdk().propertyValidator("instanceName",cdk().validateString)(properties.instanceName)),errors.collect(cdk().propertyValidator("keyPairName",cdk().validateString)(properties.keyPairName)),errors.collect(cdk().propertyValidator("location",CfnInstanceLocationPropertyValidator)(properties.location)),errors.collect(cdk().propertyValidator("networking",CfnInstanceNetworkingPropertyValidator)(properties.networking)),errors.collect(cdk().propertyValidator("state",CfnInstanceStatePropertyValidator)(properties.state)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("userData",cdk().validateString)(properties.userData)),errors.wrap('supplied properties not correct for "CfnInstanceProps"')}function convertCfnInstancePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstancePropsValidator(properties).assertSuccess(),{AddOns:cdk().listMapper(convertCfnInstanceAddOnPropertyToCloudFormation)(properties.addOns),AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),BlueprintId:cdk().stringToCloudFormation(properties.blueprintId),BundleId:cdk().stringToCloudFormation(properties.bundleId),Hardware:convertCfnInstanceHardwarePropertyToCloudFormation(properties.hardware),InstanceName:cdk().stringToCloudFormation(properties.instanceName),KeyPairName:cdk().stringToCloudFormation(properties.keyPairName),Location:convertCfnInstanceLocationPropertyToCloudFormation(properties.location),Networking:convertCfnInstanceNetworkingPropertyToCloudFormation(properties.networking),State:convertCfnInstanceStatePropertyToCloudFormation(properties.state),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),UserData:cdk().stringToCloudFormation(properties.userData)}):properties}function CfnInstancePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("addOns","AddOns",properties.AddOns!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceAddOnPropertyFromCloudFormation)(properties.AddOns):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("blueprintId","BlueprintId",properties.BlueprintId!=null?cfn_parse().FromCloudFormation.getString(properties.BlueprintId):void 0),ret.addPropertyResult("bundleId","BundleId",properties.BundleId!=null?cfn_parse().FromCloudFormation.getString(properties.BundleId):void 0),ret.addPropertyResult("hardware","Hardware",properties.Hardware!=null?CfnInstanceHardwarePropertyFromCloudFormation(properties.Hardware):void 0),ret.addPropertyResult("instanceName","InstanceName",properties.InstanceName!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceName):void 0),ret.addPropertyResult("keyPairName","KeyPairName",properties.KeyPairName!=null?cfn_parse().FromCloudFormation.getString(properties.KeyPairName):void 0),ret.addPropertyResult("location","Location",properties.Location!=null?CfnInstanceLocationPropertyFromCloudFormation(properties.Location):void 0),ret.addPropertyResult("networking","Networking",properties.Networking!=null?CfnInstanceNetworkingPropertyFromCloudFormation(properties.Networking):void 0),ret.addPropertyResult("state","State",properties.State!=null?CfnInstanceStatePropertyFromCloudFormation(properties.State):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("userData","UserData",properties.UserData!=null?cfn_parse().FromCloudFormation.getString(properties.UserData):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLoadBalancer extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnLoadBalancer",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::LoadBalancer";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLoadBalancerPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLoadBalancer(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 isCfnLoadBalancer(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLoadBalancer.CFN_RESOURCE_TYPE_NAME}static arnForLoadBalancer(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_ILoadBalancerRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForLoadBalancer),error}return resource.loadBalancerRef.loadBalancerArn}_attachedInstances;_healthCheckPath;_instancePort;_ipAddressType;_loadBalancerName;_sessionStickinessEnabled;_sessionStickinessLbCookieDurationSeconds;tags;_tagsRaw;_tlsPolicyName;cfnPropertyNames={attachedInstances:"AttachedInstances",healthCheckPath:"HealthCheckPath",instancePort:"InstancePort",ipAddressType:"IpAddressType",loadBalancerName:"LoadBalancerName",sessionStickinessEnabled:"SessionStickinessEnabled",sessionStickinessLbCookieDurationSeconds:"SessionStickinessLBCookieDurationSeconds",tags:"Tags",tlsPolicyName:"TlsPolicyName"};constructor(scope,id,props){super(scope,id,{type:CfnLoadBalancer.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnLoadBalancerProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLoadBalancer),error}cdk().requireProperty(props,"instancePort",this),cdk().requireProperty(props,"loadBalancerName",this),this._attachedInstances=props.attachedInstances,this._healthCheckPath=props.healthCheckPath,this._instancePort=props.instancePort,this._ipAddressType=props.ipAddressType,this._loadBalancerName=props.loadBalancerName,this._sessionStickinessEnabled=props.sessionStickinessEnabled,this._sessionStickinessLbCookieDurationSeconds=props.sessionStickinessLbCookieDurationSeconds,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::LoadBalancer",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._tlsPolicyName=props.tlsPolicyName}get loadBalancerRef(){return{loadBalancerName:this.ref,loadBalancerArn:this.attrLoadBalancerArn}}get attachedInstances(){return this._attachedInstances}set attachedInstances(value){cdk().traceProperty(this.node,"AttachedInstances"),this._attachedInstances=value}get healthCheckPath(){return this._healthCheckPath}set healthCheckPath(value){cdk().traceProperty(this.node,"HealthCheckPath"),this._healthCheckPath=value}get instancePort(){return this._instancePort}set instancePort(value){cdk().traceProperty(this.node,"InstancePort"),this._instancePort=value}get ipAddressType(){return this._ipAddressType}set ipAddressType(value){cdk().traceProperty(this.node,"IpAddressType"),this._ipAddressType=value}get loadBalancerName(){return this._loadBalancerName}set loadBalancerName(value){cdk().traceProperty(this.node,"LoadBalancerName"),this._loadBalancerName=value}get sessionStickinessEnabled(){return this._sessionStickinessEnabled}set sessionStickinessEnabled(value){cdk().traceProperty(this.node,"SessionStickinessEnabled"),this._sessionStickinessEnabled=value}get sessionStickinessLbCookieDurationSeconds(){return this._sessionStickinessLbCookieDurationSeconds}set sessionStickinessLbCookieDurationSeconds(value){cdk().traceProperty(this.node,"SessionStickinessLBCookieDurationSeconds"),this._sessionStickinessLbCookieDurationSeconds=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get tlsPolicyName(){return this._tlsPolicyName}set tlsPolicyName(value){cdk().traceProperty(this.node,"TlsPolicyName"),this._tlsPolicyName=value}get attrLoadBalancerArn(){return cdk().Token.asString(this.getAtt("LoadBalancerArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{attachedInstances:this._attachedInstances,healthCheckPath:this._healthCheckPath,instancePort:this._instancePort,ipAddressType:this._ipAddressType,loadBalancerName:this._loadBalancerName,sessionStickinessEnabled:this._sessionStickinessEnabled,sessionStickinessLbCookieDurationSeconds:this._sessionStickinessLbCookieDurationSeconds,tags:this.tags.renderTags(),tlsPolicyName:this._tlsPolicyName}}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",CfnLoadBalancer.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLoadBalancerPropsToCloudFormation(props)}}exports.CfnLoadBalancer=CfnLoadBalancer;function CfnLoadBalancerPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachedInstances",cdk().listValidator(cdk().validateString))(properties.attachedInstances)),errors.collect(cdk().propertyValidator("healthCheckPath",cdk().validateString)(properties.healthCheckPath)),errors.collect(cdk().propertyValidator("instancePort",cdk().requiredValidator)(properties.instancePort)),errors.collect(cdk().propertyValidator("instancePort",cdk().validateNumber)(properties.instancePort)),errors.collect(cdk().propertyValidator("ipAddressType",cdk().validateString)(properties.ipAddressType)),errors.collect(cdk().propertyValidator("loadBalancerName",cdk().requiredValidator)(properties.loadBalancerName)),errors.collect(cdk().propertyValidator("loadBalancerName",cdk().validateString)(properties.loadBalancerName)),errors.collect(cdk().propertyValidator("sessionStickinessEnabled",cdk().validateBoolean)(properties.sessionStickinessEnabled)),errors.collect(cdk().propertyValidator("sessionStickinessLbCookieDurationSeconds",cdk().validateString)(properties.sessionStickinessLbCookieDurationSeconds)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("tlsPolicyName",cdk().validateString)(properties.tlsPolicyName)),errors.wrap('supplied properties not correct for "CfnLoadBalancerProps"')}function convertCfnLoadBalancerPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoadBalancerPropsValidator(properties).assertSuccess(),{AttachedInstances:cdk().listMapper(cdk().stringToCloudFormation)(properties.attachedInstances),HealthCheckPath:cdk().stringToCloudFormation(properties.healthCheckPath),InstancePort:cdk().numberToCloudFormation(properties.instancePort),IpAddressType:cdk().stringToCloudFormation(properties.ipAddressType),LoadBalancerName:cdk().stringToCloudFormation(properties.loadBalancerName),SessionStickinessEnabled:cdk().booleanToCloudFormation(properties.sessionStickinessEnabled),SessionStickinessLBCookieDurationSeconds:cdk().stringToCloudFormation(properties.sessionStickinessLbCookieDurationSeconds),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TlsPolicyName:cdk().stringToCloudFormation(properties.tlsPolicyName)}):properties}function CfnLoadBalancerPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachedInstances","AttachedInstances",properties.AttachedInstances!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AttachedInstances):void 0),ret.addPropertyResult("healthCheckPath","HealthCheckPath",properties.HealthCheckPath!=null?cfn_parse().FromCloudFormation.getString(properties.HealthCheckPath):void 0),ret.addPropertyResult("instancePort","InstancePort",properties.InstancePort!=null?cfn_parse().FromCloudFormation.getNumber(properties.InstancePort):void 0),ret.addPropertyResult("ipAddressType","IpAddressType",properties.IpAddressType!=null?cfn_parse().FromCloudFormation.getString(properties.IpAddressType):void 0),ret.addPropertyResult("loadBalancerName","LoadBalancerName",properties.LoadBalancerName!=null?cfn_parse().FromCloudFormation.getString(properties.LoadBalancerName):void 0),ret.addPropertyResult("sessionStickinessEnabled","SessionStickinessEnabled",properties.SessionStickinessEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SessionStickinessEnabled):void 0),ret.addPropertyResult("sessionStickinessLbCookieDurationSeconds","SessionStickinessLBCookieDurationSeconds",properties.SessionStickinessLBCookieDurationSeconds!=null?cfn_parse().FromCloudFormation.getString(properties.SessionStickinessLBCookieDurationSeconds):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tlsPolicyName","TlsPolicyName",properties.TlsPolicyName!=null?cfn_parse().FromCloudFormation.getString(properties.TlsPolicyName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLoadBalancerTlsCertificate extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnLoadBalancerTlsCertificate",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::LoadBalancerTlsCertificate";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLoadBalancerTlsCertificatePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLoadBalancerTlsCertificate(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 isCfnLoadBalancerTlsCertificate(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLoadBalancerTlsCertificate.CFN_RESOURCE_TYPE_NAME}static arnForLoadBalancerTlsCertificate(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_ILoadBalancerTlsCertificateRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForLoadBalancerTlsCertificate),error}return resource.loadBalancerTlsCertificateRef.loadBalancerTlsCertificateArn}_certificateAlternativeNames;_certificateDomainName;_certificateName;_httpsRedirectionEnabled;_isAttached;_loadBalancerName;cfnPropertyNames={certificateAlternativeNames:"CertificateAlternativeNames",certificateDomainName:"CertificateDomainName",certificateName:"CertificateName",httpsRedirectionEnabled:"HttpsRedirectionEnabled",isAttached:"IsAttached",loadBalancerName:"LoadBalancerName"};constructor(scope,id,props){super(scope,id,{type:CfnLoadBalancerTlsCertificate.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnLoadBalancerTlsCertificateProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLoadBalancerTlsCertificate),error}cdk().requireProperty(props,"certificateDomainName",this),cdk().requireProperty(props,"certificateName",this),cdk().requireProperty(props,"loadBalancerName",this),this._certificateAlternativeNames=props.certificateAlternativeNames,this._certificateDomainName=props.certificateDomainName,this._certificateName=props.certificateName,this._httpsRedirectionEnabled=props.httpsRedirectionEnabled,this._isAttached=props.isAttached,this._loadBalancerName=props.loadBalancerName}get loadBalancerTlsCertificateRef(){return{certificateName:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),loadBalancerName:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),loadBalancerTlsCertificateArn:this.attrLoadBalancerTlsCertificateArn}}get certificateAlternativeNames(){return this._certificateAlternativeNames}set certificateAlternativeNames(value){cdk().traceProperty(this.node,"CertificateAlternativeNames"),this._certificateAlternativeNames=value}get certificateDomainName(){return this._certificateDomainName}set certificateDomainName(value){cdk().traceProperty(this.node,"CertificateDomainName"),this._certificateDomainName=value}get certificateName(){return this._certificateName}set certificateName(value){cdk().traceProperty(this.node,"CertificateName"),this._certificateName=value}get httpsRedirectionEnabled(){return this._httpsRedirectionEnabled}set httpsRedirectionEnabled(value){cdk().traceProperty(this.node,"HttpsRedirectionEnabled"),this._httpsRedirectionEnabled=value}get isAttached(){return this._isAttached}set isAttached(value){cdk().traceProperty(this.node,"IsAttached"),this._isAttached=value}get loadBalancerName(){return this._loadBalancerName}set loadBalancerName(value){cdk().traceProperty(this.node,"LoadBalancerName"),this._loadBalancerName=value}get attrLoadBalancerTlsCertificateArn(){return cdk().Token.asString(this.getAtt("LoadBalancerTlsCertificateArn",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{certificateAlternativeNames:this._certificateAlternativeNames,certificateDomainName:this._certificateDomainName,certificateName:this._certificateName,httpsRedirectionEnabled:this._httpsRedirectionEnabled,isAttached:this._isAttached,loadBalancerName:this._loadBalancerName}}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",CfnLoadBalancerTlsCertificate.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLoadBalancerTlsCertificatePropsToCloudFormation(props)}}exports.CfnLoadBalancerTlsCertificate=CfnLoadBalancerTlsCertificate;function CfnLoadBalancerTlsCertificatePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("certificateAlternativeNames",cdk().listValidator(cdk().validateString))(properties.certificateAlternativeNames)),errors.collect(cdk().propertyValidator("certificateDomainName",cdk().requiredValidator)(properties.certificateDomainName)),errors.collect(cdk().propertyValidator("certificateDomainName",cdk().validateString)(properties.certificateDomainName)),errors.collect(cdk().propertyValidator("certificateName",cdk().requiredValidator)(properties.certificateName)),errors.collect(cdk().propertyValidator("certificateName",cdk().validateString)(properties.certificateName)),errors.collect(cdk().propertyValidator("httpsRedirectionEnabled",cdk().validateBoolean)(properties.httpsRedirectionEnabled)),errors.collect(cdk().propertyValidator("isAttached",cdk().validateBoolean)(properties.isAttached)),errors.collect(cdk().propertyValidator("loadBalancerName",cdk().requiredValidator)(properties.loadBalancerName)),errors.collect(cdk().propertyValidator("loadBalancerName",cdk().validateString)(properties.loadBalancerName)),errors.wrap('supplied properties not correct for "CfnLoadBalancerTlsCertificateProps"')}function convertCfnLoadBalancerTlsCertificatePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLoadBalancerTlsCertificatePropsValidator(properties).assertSuccess(),{CertificateAlternativeNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.certificateAlternativeNames),CertificateDomainName:cdk().stringToCloudFormation(properties.certificateDomainName),CertificateName:cdk().stringToCloudFormation(properties.certificateName),HttpsRedirectionEnabled:cdk().booleanToCloudFormation(properties.httpsRedirectionEnabled),IsAttached:cdk().booleanToCloudFormation(properties.isAttached),LoadBalancerName:cdk().stringToCloudFormation(properties.loadBalancerName)}):properties}function CfnLoadBalancerTlsCertificatePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateAlternativeNames","CertificateAlternativeNames",properties.CertificateAlternativeNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CertificateAlternativeNames):void 0),ret.addPropertyResult("certificateDomainName","CertificateDomainName",properties.CertificateDomainName!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateDomainName):void 0),ret.addPropertyResult("certificateName","CertificateName",properties.CertificateName!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateName):void 0),ret.addPropertyResult("httpsRedirectionEnabled","HttpsRedirectionEnabled",properties.HttpsRedirectionEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.HttpsRedirectionEnabled):void 0),ret.addPropertyResult("isAttached","IsAttached",properties.IsAttached!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsAttached):void 0),ret.addPropertyResult("loadBalancerName","LoadBalancerName",properties.LoadBalancerName!=null?cfn_parse().FromCloudFormation.getString(properties.LoadBalancerName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnStaticIp extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnStaticIp",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::StaticIp";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnStaticIpPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnStaticIp(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 isCfnStaticIp(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnStaticIp.CFN_RESOURCE_TYPE_NAME}static arnForStaticIp(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IStaticIpRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForStaticIp),error}return resource.staticIpRef.staticIpArn}_attachedTo;_staticIpName;cfnPropertyNames={attachedTo:"AttachedTo",staticIpName:"StaticIpName"};constructor(scope,id,props){super(scope,id,{type:CfnStaticIp.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnStaticIpProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnStaticIp),error}cdk().requireProperty(props,"staticIpName",this),this._attachedTo=props.attachedTo,this._staticIpName=props.staticIpName}get staticIpRef(){return{staticIpName:this.ref,staticIpArn:this.attrStaticIpArn}}get attachedTo(){return this._attachedTo}set attachedTo(value){cdk().traceProperty(this.node,"AttachedTo"),this._attachedTo=value}get staticIpName(){return this._staticIpName}set staticIpName(value){cdk().traceProperty(this.node,"StaticIpName"),this._staticIpName=value}get attrIpAddress(){return cdk().Token.asString(this.getAtt("IpAddress",cdk().ResolutionTypeHint.STRING))}get attrIsAttached(){return this.getAtt("IsAttached")}get attrStaticIpArn(){return cdk().Token.asString(this.getAtt("StaticIpArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{attachedTo:this._attachedTo,staticIpName:this._staticIpName}}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",CfnStaticIp.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnStaticIpPropsToCloudFormation(props)}}exports.CfnStaticIp=CfnStaticIp;function CfnStaticIpPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachedTo",cdk().validateString)(properties.attachedTo)),errors.collect(cdk().propertyValidator("staticIpName",cdk().requiredValidator)(properties.staticIpName)),errors.collect(cdk().propertyValidator("staticIpName",cdk().validateString)(properties.staticIpName)),errors.wrap('supplied properties not correct for "CfnStaticIpProps"')}function convertCfnStaticIpPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnStaticIpPropsValidator(properties).assertSuccess(),{AttachedTo:cdk().stringToCloudFormation(properties.attachedTo),StaticIpName:cdk().stringToCloudFormation(properties.staticIpName)}):properties}function CfnStaticIpPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachedTo","AttachedTo",properties.AttachedTo!=null?cfn_parse().FromCloudFormation.getString(properties.AttachedTo):void 0),ret.addPropertyResult("staticIpName","StaticIpName",properties.StaticIpName!=null?cfn_parse().FromCloudFormation.getString(properties.StaticIpName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDatabaseSnapshot extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnDatabaseSnapshot",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::DatabaseSnapshot";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDatabaseSnapshotPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDatabaseSnapshot(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 isCfnDatabaseSnapshot(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDatabaseSnapshot.CFN_RESOURCE_TYPE_NAME}static arnForDatabaseSnapshot(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IDatabaseSnapshotRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDatabaseSnapshot),error}return resource.databaseSnapshotRef.databaseSnapshotArn}cdkTagManager;_relationalDatabaseName;_relationalDatabaseSnapshotName;_tags;cfnPropertyNames={tags:"Tags",relationalDatabaseName:"RelationalDatabaseName",relationalDatabaseSnapshotName:"RelationalDatabaseSnapshotName"};constructor(scope,id,props){super(scope,id,{type:CfnDatabaseSnapshot.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnDatabaseSnapshotProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDatabaseSnapshot),error}cdk().requireProperty(props,"relationalDatabaseName",this),cdk().requireProperty(props,"relationalDatabaseSnapshotName",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::DatabaseSnapshot",void 0,{tagPropertyName:"tags"}),this._relationalDatabaseName=props.relationalDatabaseName,this._relationalDatabaseSnapshotName=props.relationalDatabaseSnapshotName,this._tags=props.tags}get databaseSnapshotRef(){return{relationalDatabaseSnapshotName:this.ref,databaseSnapshotArn:this.attrArn}}get relationalDatabaseName(){return this._relationalDatabaseName}set relationalDatabaseName(value){cdk().traceProperty(this.node,"RelationalDatabaseName"),this._relationalDatabaseName=value}get relationalDatabaseSnapshotName(){return this._relationalDatabaseSnapshotName}set relationalDatabaseSnapshotName(value){cdk().traceProperty(this.node,"RelationalDatabaseSnapshotName"),this._relationalDatabaseSnapshotName=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 attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrEngine(){return cdk().Token.asString(this.getAtt("Engine",cdk().ResolutionTypeHint.STRING))}get attrEngineVersion(){return cdk().Token.asString(this.getAtt("EngineVersion",cdk().ResolutionTypeHint.STRING))}get attrFromRelationalDatabaseArn(){return cdk().Token.asString(this.getAtt("FromRelationalDatabaseArn",cdk().ResolutionTypeHint.STRING))}get attrFromRelationalDatabaseBlueprintId(){return cdk().Token.asString(this.getAtt("FromRelationalDatabaseBlueprintId",cdk().ResolutionTypeHint.STRING))}get attrFromRelationalDatabaseBundleId(){return cdk().Token.asString(this.getAtt("FromRelationalDatabaseBundleId",cdk().ResolutionTypeHint.STRING))}get attrFromRelationalDatabaseName(){return cdk().Token.asString(this.getAtt("FromRelationalDatabaseName",cdk().ResolutionTypeHint.STRING))}get attrLocation(){return this.getAtt("Location")}get attrName(){return cdk().Token.asString(this.getAtt("Name",cdk().ResolutionTypeHint.STRING))}get attrResourceType(){return cdk().Token.asString(this.getAtt("ResourceType",cdk().ResolutionTypeHint.STRING))}get attrSizeInGb(){return cdk().Token.asNumber(this.getAtt("SizeInGb",cdk().ResolutionTypeHint.NUMBER))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrSupportCode(){return cdk().Token.asString(this.getAtt("SupportCode",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),relationalDatabaseName:this._relationalDatabaseName,relationalDatabaseSnapshotName:this._relationalDatabaseSnapshotName}}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",CfnDatabaseSnapshot.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDatabaseSnapshotPropsToCloudFormation(props)}}exports.CfnDatabaseSnapshot=CfnDatabaseSnapshot;function CfnDatabaseSnapshotLocationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("regionName",cdk().validateString)(properties.regionName)),errors.wrap('supplied properties not correct for "LocationProperty"')}function convertCfnDatabaseSnapshotLocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDatabaseSnapshotLocationPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),RegionName:cdk().stringToCloudFormation(properties.regionName)}):properties}function CfnDatabaseSnapshotLocationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDatabaseSnapshotPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("relationalDatabaseName",cdk().requiredValidator)(properties.relationalDatabaseName)),errors.collect(cdk().propertyValidator("relationalDatabaseName",cdk().validateString)(properties.relationalDatabaseName)),errors.collect(cdk().propertyValidator("relationalDatabaseSnapshotName",cdk().requiredValidator)(properties.relationalDatabaseSnapshotName)),errors.collect(cdk().propertyValidator("relationalDatabaseSnapshotName",cdk().validateString)(properties.relationalDatabaseSnapshotName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDatabaseSnapshotProps"')}function convertCfnDatabaseSnapshotPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDatabaseSnapshotPropsValidator(properties).assertSuccess(),{RelationalDatabaseName:cdk().stringToCloudFormation(properties.relationalDatabaseName),RelationalDatabaseSnapshotName:cdk().stringToCloudFormation(properties.relationalDatabaseSnapshotName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDatabaseSnapshotPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("relationalDatabaseName","RelationalDatabaseName",properties.RelationalDatabaseName!=null?cfn_parse().FromCloudFormation.getString(properties.RelationalDatabaseName):void 0),ret.addPropertyResult("relationalDatabaseSnapshotName","RelationalDatabaseSnapshotName",properties.RelationalDatabaseSnapshotName!=null?cfn_parse().FromCloudFormation.getString(properties.RelationalDatabaseSnapshotName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDiskSnapshot extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnDiskSnapshot",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::DiskSnapshot";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDiskSnapshotPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDiskSnapshot(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 isCfnDiskSnapshot(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDiskSnapshot.CFN_RESOURCE_TYPE_NAME}static arnForDiskSnapshot(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IDiskSnapshotRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDiskSnapshot),error}return resource.diskSnapshotRef.diskSnapshotArn}cdkTagManager;_diskName;_diskSnapshotName;_tags;cfnPropertyNames={tags:"Tags",diskName:"DiskName",diskSnapshotName:"DiskSnapshotName"};constructor(scope,id,props){super(scope,id,{type:CfnDiskSnapshot.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnDiskSnapshotProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDiskSnapshot),error}cdk().requireProperty(props,"diskName",this),cdk().requireProperty(props,"diskSnapshotName",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::DiskSnapshot",void 0,{tagPropertyName:"tags"}),this._diskName=props.diskName,this._diskSnapshotName=props.diskSnapshotName,this._tags=props.tags}get diskSnapshotRef(){return{diskSnapshotName:this.ref,diskSnapshotArn:this.attrDiskSnapshotArn}}get diskName(){return this._diskName}set diskName(value){cdk().traceProperty(this.node,"DiskName"),this._diskName=value}get diskSnapshotName(){return this._diskSnapshotName}set diskSnapshotName(value){cdk().traceProperty(this.node,"DiskSnapshotName"),this._diskSnapshotName=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrDiskSnapshotArn(){return cdk().Token.asString(this.getAtt("DiskSnapshotArn",cdk().ResolutionTypeHint.STRING))}get attrFromDiskName(){return cdk().Token.asString(this.getAtt("FromDiskName",cdk().ResolutionTypeHint.STRING))}get attrIsFromAutoSnapshot(){return this.getAtt("IsFromAutoSnapshot")}get attrLocation(){return this.getAtt("Location")}get attrProgress(){return cdk().Token.asString(this.getAtt("Progress",cdk().ResolutionTypeHint.STRING))}get attrResourceType(){return cdk().Token.asString(this.getAtt("ResourceType",cdk().ResolutionTypeHint.STRING))}get attrSizeInGb(){return cdk().Token.asNumber(this.getAtt("SizeInGb",cdk().ResolutionTypeHint.NUMBER))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrSupportCode(){return cdk().Token.asString(this.getAtt("SupportCode",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),diskName:this._diskName,diskSnapshotName:this._diskSnapshotName}}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",CfnDiskSnapshot.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDiskSnapshotPropsToCloudFormation(props)}}exports.CfnDiskSnapshot=CfnDiskSnapshot;function CfnDiskSnapshotLocationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("regionName",cdk().validateString)(properties.regionName)),errors.wrap('supplied properties not correct for "LocationProperty"')}function convertCfnDiskSnapshotLocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDiskSnapshotLocationPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),RegionName:cdk().stringToCloudFormation(properties.regionName)}):properties}function CfnDiskSnapshotLocationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDiskSnapshotPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("diskName",cdk().requiredValidator)(properties.diskName)),errors.collect(cdk().propertyValidator("diskName",cdk().validateString)(properties.diskName)),errors.collect(cdk().propertyValidator("diskSnapshotName",cdk().requiredValidator)(properties.diskSnapshotName)),errors.collect(cdk().propertyValidator("diskSnapshotName",cdk().validateString)(properties.diskSnapshotName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDiskSnapshotProps"')}function convertCfnDiskSnapshotPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDiskSnapshotPropsValidator(properties).assertSuccess(),{DiskName:cdk().stringToCloudFormation(properties.diskName),DiskSnapshotName:cdk().stringToCloudFormation(properties.diskSnapshotName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDiskSnapshotPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("diskName","DiskName",properties.DiskName!=null?cfn_parse().FromCloudFormation.getString(properties.DiskName):void 0),ret.addPropertyResult("diskSnapshotName","DiskSnapshotName",properties.DiskSnapshotName!=null?cfn_parse().FromCloudFormation.getString(properties.DiskSnapshotName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDomain extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnDomain",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::Domain";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDomainPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDomain(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 isCfnDomain(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDomain.CFN_RESOURCE_TYPE_NAME}static arnForDomain(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IDomainRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDomain),error}return resource.domainRef.domainArn}cdkTagManager;_domainEntries;_domainName;_tags;cfnPropertyNames={tags:"Tags",domainEntries:"DomainEntries",domainName:"DomainName"};constructor(scope,id,props){super(scope,id,{type:CfnDomain.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnDomainProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDomain),error}cdk().requireProperty(props,"domainName",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::Domain",void 0,{tagPropertyName:"tags"}),this._domainEntries=props.domainEntries,this._domainName=props.domainName,this._tags=props.tags}get domainRef(){return{domainName:this.ref,domainArn:this.attrArn}}get domainEntries(){return this._domainEntries}set domainEntries(value){cdk().traceProperty(this.node,"DomainEntries"),this._domainEntries=value}get domainName(){return this._domainName}set domainName(value){cdk().traceProperty(this.node,"DomainName"),this._domainName=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 attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrLocation(){return this.getAtt("Location")}get attrResourceType(){return cdk().Token.asString(this.getAtt("ResourceType",cdk().ResolutionTypeHint.STRING))}get attrSupportCode(){return cdk().Token.asString(this.getAtt("SupportCode",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),domainEntries:this._domainEntries,domainName:this._domainName}}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",CfnDomain.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDomainPropsToCloudFormation(props)}}exports.CfnDomain=CfnDomain;function CfnDomainDomainEntryPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.collect(cdk().propertyValidator("isAlias",cdk().validateBoolean)(properties.isAlias)),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("target",cdk().requiredValidator)(properties.target)),errors.collect(cdk().propertyValidator("target",cdk().validateString)(properties.target)),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 "DomainEntryProperty"')}function convertCfnDomainDomainEntryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDomainDomainEntryPropertyValidator(properties).assertSuccess(),{Id:cdk().stringToCloudFormation(properties.id),IsAlias:cdk().booleanToCloudFormation(properties.isAlias),Name:cdk().stringToCloudFormation(properties.name),Target:cdk().stringToCloudFormation(properties.target),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnDomainDomainEntryPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("id","Id",properties.Id!=null?cfn_parse().FromCloudFormation.getString(properties.Id):void 0),ret.addPropertyResult("isAlias","IsAlias",properties.IsAlias!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsAlias):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("target","Target",properties.Target!=null?cfn_parse().FromCloudFormation.getString(properties.Target):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDomainLocationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("regionName",cdk().validateString)(properties.regionName)),errors.wrap('supplied properties not correct for "LocationProperty"')}function convertCfnDomainLocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDomainLocationPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),RegionName:cdk().stringToCloudFormation(properties.regionName)}):properties}function CfnDomainLocationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDomainPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("domainEntries",cdk().listValidator(CfnDomainDomainEntryPropertyValidator))(properties.domainEntries)),errors.collect(cdk().propertyValidator("domainName",cdk().requiredValidator)(properties.domainName)),errors.collect(cdk().propertyValidator("domainName",cdk().validateString)(properties.domainName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDomainProps"')}function convertCfnDomainPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDomainPropsValidator(properties).assertSuccess(),{DomainEntries:cdk().listMapper(convertCfnDomainDomainEntryPropertyToCloudFormation)(properties.domainEntries),DomainName:cdk().stringToCloudFormation(properties.domainName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDomainPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("domainEntries","DomainEntries",properties.DomainEntries!=null?cfn_parse().FromCloudFormation.getArray(CfnDomainDomainEntryPropertyFromCloudFormation)(properties.DomainEntries):void 0),ret.addPropertyResult("domainName","DomainName",properties.DomainName!=null?cfn_parse().FromCloudFormation.getString(properties.DomainName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnInstanceSnapshot extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_lightsail.CfnInstanceSnapshot",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::Lightsail::InstanceSnapshot";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInstanceSnapshotPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnInstanceSnapshot(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 isCfnInstanceSnapshot(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnInstanceSnapshot.CFN_RESOURCE_TYPE_NAME}static arnForInstanceSnapshot(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_lightsail_IInstanceSnapshotRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForInstanceSnapshot),error}return resource.instanceSnapshotRef.instanceSnapshotArn}cdkTagManager;_instanceName;_instanceSnapshotName;_tags;cfnPropertyNames={tags:"Tags",instanceName:"InstanceName",instanceSnapshotName:"InstanceSnapshotName"};constructor(scope,id,props){super(scope,id,{type:CfnInstanceSnapshot.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_lightsail_CfnInstanceSnapshotProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInstanceSnapshot),error}cdk().requireProperty(props,"instanceName",this),cdk().requireProperty(props,"instanceSnapshotName",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Lightsail::InstanceSnapshot",void 0,{tagPropertyName:"tags"}),this._instanceName=props.instanceName,this._instanceSnapshotName=props.instanceSnapshotName,this._tags=props.tags}get instanceSnapshotRef(){return{instanceSnapshotName:this.ref,instanceSnapshotArn:this.attrArn}}get instanceName(){return this._instanceName}set instanceName(value){cdk().traceProperty(this.node,"InstanceName"),this._instanceName=value}get instanceSnapshotName(){return this._instanceSnapshotName}set instanceSnapshotName(value){cdk().traceProperty(this.node,"InstanceSnapshotName"),this._instanceSnapshotName=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 attrFromInstanceArn(){return cdk().Token.asString(this.getAtt("FromInstanceArn",cdk().ResolutionTypeHint.STRING))}get attrFromInstanceName(){return cdk().Token.asString(this.getAtt("FromInstanceName",cdk().ResolutionTypeHint.STRING))}get attrIsFromAutoSnapshot(){return this.getAtt("IsFromAutoSnapshot")}get attrLocation(){return this.getAtt("Location")}get attrResourceType(){return cdk().Token.asString(this.getAtt("ResourceType",cdk().ResolutionTypeHint.STRING))}get attrSizeInGb(){return cdk().Token.asNumber(this.getAtt("SizeInGb",cdk().ResolutionTypeHint.NUMBER))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrSupportCode(){return cdk().Token.asString(this.getAtt("SupportCode",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),instanceName:this._instanceName,instanceSnapshotName:this._instanceSnapshotName}}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",CfnInstanceSnapshot.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnInstanceSnapshotPropsToCloudFormation(props)}}exports.CfnInstanceSnapshot=CfnInstanceSnapshot;function CfnInstanceSnapshotLocationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("regionName",cdk().validateString)(properties.regionName)),errors.wrap('supplied properties not correct for "LocationProperty"')}function convertCfnInstanceSnapshotLocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceSnapshotLocationPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),RegionName:cdk().stringToCloudFormation(properties.regionName)}):properties}function CfnInstanceSnapshotLocationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceSnapshotPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("instanceName",cdk().requiredValidator)(properties.instanceName)),errors.collect(cdk().propertyValidator("instanceName",cdk().validateString)(properties.instanceName)),errors.collect(cdk().propertyValidator("instanceSnapshotName",cdk().requiredValidator)(properties.instanceSnapshotName)),errors.collect(cdk().propertyValidator("instanceSnapshotName",cdk().validateString)(properties.instanceSnapshotName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnInstanceSnapshotProps"')}function convertCfnInstanceSnapshotPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceSnapshotPropsValidator(properties).assertSuccess(),{InstanceName:cdk().stringToCloudFormation(properties.instanceName),InstanceSnapshotName:cdk().stringToCloudFormation(properties.instanceSnapshotName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnInstanceSnapshotPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("instanceName","InstanceName",properties.InstanceName!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceName):void 0),ret.addPropertyResult("instanceSnapshotName","InstanceSnapshotName",properties.InstanceSnapshotName!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceSnapshotName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}