"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnSecurityGroupEgress=exports.CfnSecurityGroup=exports.CfnRouteTable=exports.CfnRoute=exports.CfnPrefixList=exports.CfnPlacementGroup=exports.CfnNetworkPerformanceMetricSubscription=exports.CfnNetworkInterfacePermission=exports.CfnNetworkInterfaceAttachment=exports.CfnNetworkInterface=exports.CfnNetworkInsightsPath=exports.CfnNetworkInsightsAnalysis=exports.CfnNetworkInsightsAccessScopeAnalysis=exports.CfnNetworkInsightsAccessScope=exports.CfnNetworkAclEntry=exports.CfnNetworkAcl=exports.CfnNatGateway=exports.CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation=exports.CfnLocalGatewayRouteTableVPCAssociation=exports.CfnLocalGatewayRouteTable=exports.CfnLocalGatewayRoute=exports.CfnLaunchTemplate=exports.CfnKeyPair=exports.CfnInternetGateway=exports.CfnInstanceConnectEndpoint=exports.CfnInstance=exports.CfnIPAMScope=exports.CfnIPAMResourceDiscoveryAssociation=exports.CfnIPAMResourceDiscovery=exports.CfnIPAMPoolCidr=exports.CfnIPAMPool=exports.CfnIPAMAllocation=exports.CfnIPAM=exports.CfnHost=exports.CfnGatewayRouteTableAssociation=exports.CfnFlowLog=exports.CfnEnclaveCertificateIamRoleAssociation=exports.CfnEgressOnlyInternetGateway=exports.CfnEIPAssociation=exports.CfnEIP=exports.CfnEC2Fleet=exports.CfnDHCPOptions=exports.CfnCustomerGateway=exports.CfnClientVpnTargetNetworkAssociation=exports.CfnClientVpnRoute=exports.CfnClientVpnEndpoint=exports.CfnClientVpnAuthorizationRule=exports.CfnCarrierGateway=exports.CfnCapacityReservationFleet=exports.CfnCapacityReservation=void 0,exports.CfnRouteServerAssociation=exports.CfnRouteServer=exports.CfnLocalGatewayVirtualInterfaceGroup=exports.CfnLocalGatewayVirtualInterface=exports.CfnIpPoolRouteTableAssociation=exports.CfnIPAMPrefixListResolverTarget=exports.CfnIPAMPrefixListResolver=exports.CfnCapacityManagerDataExport=exports.CfnVolumeAttachment=exports.CfnVolume=exports.CfnVerifiedAccessTrustProvider=exports.CfnVerifiedAccessInstance=exports.CfnVerifiedAccessGroup=exports.CfnVerifiedAccessEndpoint=exports.CfnVPNGatewayRoutePropagation=exports.CfnVPNGateway=exports.CfnVPNConnectionRoute=exports.CfnVPNConnection=exports.CfnVPCPeeringConnection=exports.CfnVPCGatewayAttachment=exports.CfnVPCEndpointServicePermissions=exports.CfnVPCEndpointService=exports.CfnVPCEndpointConnectionNotification=exports.CfnVPCEndpoint=exports.CfnVPCDHCPOptionsAssociation=exports.CfnVPCCidrBlock=exports.CfnVPC=exports.CfnTransitGatewayVpcAttachment=exports.CfnTransitGatewayRouteTablePropagation=exports.CfnTransitGatewayRouteTableAssociation=exports.CfnTransitGatewayRouteTable=exports.CfnTransitGatewayRoute=exports.CfnTransitGatewayPeeringAttachment=exports.CfnTransitGatewayMulticastGroupSource=exports.CfnTransitGatewayMulticastGroupMember=exports.CfnTransitGatewayMulticastDomainAssociation=exports.CfnTransitGatewayMulticastDomain=exports.CfnTransitGatewayConnect=exports.CfnTransitGatewayAttachment=exports.CfnTransitGateway=exports.CfnTrafficMirrorTarget=exports.CfnTrafficMirrorSession=exports.CfnTrafficMirrorFilterRule=exports.CfnTrafficMirrorFilter=exports.CfnSubnetRouteTableAssociation=exports.CfnSubnetNetworkAclAssociation=exports.CfnSubnetCidrBlock=exports.CfnSubnet=exports.CfnSpotFleet=exports.CfnSecurityGroupIngress=void 0,exports.CfnVPNConcentrator=exports.CfnVPCEncryptionControl=exports.CfnVPCBlockPublicAccessOptions=exports.CfnVPCBlockPublicAccessExclusion=exports.CfnTransitGatewayMeteringPolicyEntry=exports.CfnTransitGatewayMeteringPolicy=exports.CfnTransitGatewayConnectPeer=exports.CfnSqlHaStandbyDetectedInstance=exports.CfnSnapshotBlockPublicAccess=exports.CfnSecurityGroupVpcAssociation=exports.CfnRouteServerPropagation=exports.CfnRouteServerPeer=exports.CfnRouteServerEndpoint=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 CfnCapacityReservation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnCapacityReservation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::CapacityReservation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCapacityReservationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCapacityReservation(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 isCfnCapacityReservation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCapacityReservation.CFN_RESOURCE_TYPE_NAME}static fromCapacityReservationArn(scope,id,arn){class Import extends cdk().Resource{capacityReservationRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:capacity-reservation/${CapacityReservationId}").parse(arn2);this.capacityReservationRef={capacityReservationId:variables.CapacityReservationId,capacityReservationArn:arn2}}}return new Import(scope,id,arn)}static fromCapacityReservationId(scope,id,capacityReservationId){class Import extends cdk().Resource{capacityReservationRef;constructor(scope2,id2,capacityReservationId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:capacity-reservation/${CapacityReservationId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,CapacityReservationId:capacityReservationId2});super(scope2,id2,{environmentFromArn:arn}),this.capacityReservationRef={capacityReservationId:capacityReservationId2,capacityReservationArn:arn}}}return new Import(scope,id,capacityReservationId)}static arnForCapacityReservation(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ICapacityReservationRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCapacityReservation),error}return resource.capacityReservationRef.capacityReservationArn}_availabilityZone;_availabilityZoneId;_ebsOptimized;_endDate;_endDateType;_ephemeralStorage;_instanceCount;_instanceMatchCriteria;_instancePlatform;_instanceType;_outPostArn;_placementGroupArn;_tagSpecifications;_tenancy;_unusedReservationBillingOwnerId;cfnPropertyNames={availabilityZone:"AvailabilityZone",availabilityZoneId:"AvailabilityZoneId",ebsOptimized:"EbsOptimized",endDate:"EndDate",endDateType:"EndDateType",ephemeralStorage:"EphemeralStorage",instanceCount:"InstanceCount",instanceMatchCriteria:"InstanceMatchCriteria",instancePlatform:"InstancePlatform",instanceType:"InstanceType",outPostArn:"OutPostArn",placementGroupArn:"PlacementGroupArn",tagSpecifications:"TagSpecifications",tenancy:"Tenancy",unusedReservationBillingOwnerId:"UnusedReservationBillingOwnerId"};constructor(scope,id,props){super(scope,id,{type:CfnCapacityReservation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnCapacityReservationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCapacityReservation),error}cdk().requireProperty(props,"instanceCount",this),cdk().requireProperty(props,"instancePlatform",this),cdk().requireProperty(props,"instanceType",this),this._availabilityZone=props.availabilityZone,this._availabilityZoneId=props.availabilityZoneId,this._ebsOptimized=props.ebsOptimized,this._endDate=props.endDate,this._endDateType=props.endDateType,this._ephemeralStorage=props.ephemeralStorage,this._instanceCount=props.instanceCount,this._instanceMatchCriteria=props.instanceMatchCriteria,this._instancePlatform=props.instancePlatform,this._instanceType=props.instanceType,this._outPostArn=props.outPostArn,this._placementGroupArn=props.placementGroupArn,this._tagSpecifications=props.tagSpecifications,this._tenancy=props.tenancy,this._unusedReservationBillingOwnerId=props.unusedReservationBillingOwnerId}get capacityReservationRef(){return{capacityReservationId:this.ref,capacityReservationArn:this.attrCapacityReservationArn}}get availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get availabilityZoneId(){return this._availabilityZoneId}set availabilityZoneId(value){cdk().traceProperty(this.node,"AvailabilityZoneId"),this._availabilityZoneId=value}get ebsOptimized(){return this._ebsOptimized}set ebsOptimized(value){cdk().traceProperty(this.node,"EbsOptimized"),this._ebsOptimized=value}get endDate(){return this._endDate}set endDate(value){cdk().traceProperty(this.node,"EndDate"),this._endDate=value}get endDateType(){return this._endDateType}set endDateType(value){cdk().traceProperty(this.node,"EndDateType"),this._endDateType=value}get ephemeralStorage(){return this._ephemeralStorage}set ephemeralStorage(value){cdk().traceProperty(this.node,"EphemeralStorage"),this._ephemeralStorage=value}get instanceCount(){return this._instanceCount}set instanceCount(value){cdk().traceProperty(this.node,"InstanceCount"),this._instanceCount=value}get instanceMatchCriteria(){return this._instanceMatchCriteria}set instanceMatchCriteria(value){cdk().traceProperty(this.node,"InstanceMatchCriteria"),this._instanceMatchCriteria=value}get instancePlatform(){return this._instancePlatform}set instancePlatform(value){cdk().traceProperty(this.node,"InstancePlatform"),this._instancePlatform=value}get instanceType(){return this._instanceType}set instanceType(value){cdk().traceProperty(this.node,"InstanceType"),this._instanceType=value}get outPostArn(){return this._outPostArn}set outPostArn(value){cdk().traceProperty(this.node,"OutPostArn"),this._outPostArn=value}get placementGroupArn(){return this._placementGroupArn}set placementGroupArn(value){cdk().traceProperty(this.node,"PlacementGroupArn"),this._placementGroupArn=value}get tagSpecifications(){return this._tagSpecifications}set tagSpecifications(value){cdk().traceProperty(this.node,"TagSpecifications"),this._tagSpecifications=value}get tenancy(){return this._tenancy}set tenancy(value){cdk().traceProperty(this.node,"Tenancy"),this._tenancy=value}get unusedReservationBillingOwnerId(){return this._unusedReservationBillingOwnerId}set unusedReservationBillingOwnerId(value){cdk().traceProperty(this.node,"UnusedReservationBillingOwnerId"),this._unusedReservationBillingOwnerId=value}get attrAvailabilityZone(){return cdk().Token.asString(this.getAtt("AvailabilityZone",cdk().ResolutionTypeHint.STRING))}get attrAvailableInstanceCount(){return cdk().Token.asNumber(this.getAtt("AvailableInstanceCount",cdk().ResolutionTypeHint.NUMBER))}get attrCapacityAllocationSet(){return this.getAtt("CapacityAllocationSet")}get attrCapacityReservationArn(){return cdk().Token.asString(this.getAtt("CapacityReservationArn",cdk().ResolutionTypeHint.STRING))}get attrCapacityReservationFleetId(){return cdk().Token.asString(this.getAtt("CapacityReservationFleetId",cdk().ResolutionTypeHint.STRING))}get attrCommitmentInfo(){return this.getAtt("CommitmentInfo")}get attrCreateDate(){return cdk().Token.asString(this.getAtt("CreateDate",cdk().ResolutionTypeHint.STRING))}get attrDeliveryPreference(){return cdk().Token.asString(this.getAtt("DeliveryPreference",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrInstanceType(){return cdk().Token.asString(this.getAtt("InstanceType",cdk().ResolutionTypeHint.STRING))}get attrOwnerId(){return cdk().Token.asString(this.getAtt("OwnerId",cdk().ResolutionTypeHint.STRING))}get attrReservationType(){return cdk().Token.asString(this.getAtt("ReservationType",cdk().ResolutionTypeHint.STRING))}get attrStartDate(){return cdk().Token.asString(this.getAtt("StartDate",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrTenancy(){return cdk().Token.asString(this.getAtt("Tenancy",cdk().ResolutionTypeHint.STRING))}get attrTotalInstanceCount(){return cdk().Token.asNumber(this.getAtt("TotalInstanceCount",cdk().ResolutionTypeHint.NUMBER))}get cfnProperties(){return{availabilityZone:this._availabilityZone,availabilityZoneId:this._availabilityZoneId,ebsOptimized:this._ebsOptimized,endDate:this._endDate,endDateType:this._endDateType,ephemeralStorage:this._ephemeralStorage,instanceCount:this._instanceCount,instanceMatchCriteria:this._instanceMatchCriteria,instancePlatform:this._instancePlatform,instanceType:this._instanceType,outPostArn:this._outPostArn,placementGroupArn:this._placementGroupArn,tagSpecifications:this._tagSpecifications,tenancy:this._tenancy,unusedReservationBillingOwnerId:this._unusedReservationBillingOwnerId}}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",CfnCapacityReservation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCapacityReservationPropsToCloudFormation(props)}}exports.CfnCapacityReservation=CfnCapacityReservation;function CfnCapacityReservationTagSpecificationPropertyValidator(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("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function convertCfnCapacityReservationTagSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityReservationTagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk().stringToCloudFormation(properties.resourceType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCapacityReservationTagSpecificationPropertyFromCloudFormation(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("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):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}function CfnCapacityReservationCapacityAllocationPropertyValidator(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("allocationType",cdk().validateString)(properties.allocationType)),errors.collect(cdk().propertyValidator("count",cdk().validateNumber)(properties.count)),errors.wrap('supplied properties not correct for "CapacityAllocationProperty"')}function convertCfnCapacityReservationCapacityAllocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityReservationCapacityAllocationPropertyValidator(properties).assertSuccess(),{AllocationType:cdk().stringToCloudFormation(properties.allocationType),Count:cdk().numberToCloudFormation(properties.count)}):properties}function CfnCapacityReservationCapacityAllocationPropertyFromCloudFormation(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("allocationType","AllocationType",properties.AllocationType!=null?cfn_parse().FromCloudFormation.getString(properties.AllocationType):void 0),ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse().FromCloudFormation.getNumber(properties.Count):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityReservationCommitmentInfoPropertyValidator(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("commitmentEndDate",cdk().validateString)(properties.commitmentEndDate)),errors.collect(cdk().propertyValidator("committedInstanceCount",cdk().validateNumber)(properties.committedInstanceCount)),errors.wrap('supplied properties not correct for "CommitmentInfoProperty"')}function convertCfnCapacityReservationCommitmentInfoPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityReservationCommitmentInfoPropertyValidator(properties).assertSuccess(),{CommitmentEndDate:cdk().stringToCloudFormation(properties.commitmentEndDate),CommittedInstanceCount:cdk().numberToCloudFormation(properties.committedInstanceCount)}):properties}function CfnCapacityReservationCommitmentInfoPropertyFromCloudFormation(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("commitmentEndDate","CommitmentEndDate",properties.CommitmentEndDate!=null?cfn_parse().FromCloudFormation.getString(properties.CommitmentEndDate):void 0),ret.addPropertyResult("committedInstanceCount","CommittedInstanceCount",properties.CommittedInstanceCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.CommittedInstanceCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityReservationPropsValidator(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("availabilityZoneId",cdk().validateString)(properties.availabilityZoneId)),errors.collect(cdk().propertyValidator("ebsOptimized",cdk().validateBoolean)(properties.ebsOptimized)),errors.collect(cdk().propertyValidator("endDate",cdk().validateString)(properties.endDate)),errors.collect(cdk().propertyValidator("endDateType",cdk().validateString)(properties.endDateType)),errors.collect(cdk().propertyValidator("ephemeralStorage",cdk().validateBoolean)(properties.ephemeralStorage)),errors.collect(cdk().propertyValidator("instanceCount",cdk().requiredValidator)(properties.instanceCount)),errors.collect(cdk().propertyValidator("instanceCount",cdk().validateNumber)(properties.instanceCount)),errors.collect(cdk().propertyValidator("instanceMatchCriteria",cdk().validateString)(properties.instanceMatchCriteria)),errors.collect(cdk().propertyValidator("instancePlatform",cdk().requiredValidator)(properties.instancePlatform)),errors.collect(cdk().propertyValidator("instancePlatform",cdk().validateString)(properties.instancePlatform)),errors.collect(cdk().propertyValidator("instanceType",cdk().requiredValidator)(properties.instanceType)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("outPostArn",cdk().validateString)(properties.outPostArn)),errors.collect(cdk().propertyValidator("placementGroupArn",cdk().validateString)(properties.placementGroupArn)),errors.collect(cdk().propertyValidator("tagSpecifications",cdk().listValidator(CfnCapacityReservationTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk().propertyValidator("tenancy",cdk().validateString)(properties.tenancy)),errors.collect(cdk().propertyValidator("unusedReservationBillingOwnerId",cdk().validateString)(properties.unusedReservationBillingOwnerId)),errors.wrap('supplied properties not correct for "CfnCapacityReservationProps"')}function convertCfnCapacityReservationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityReservationPropsValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk().stringToCloudFormation(properties.availabilityZoneId),EbsOptimized:cdk().booleanToCloudFormation(properties.ebsOptimized),EndDate:cdk().stringToCloudFormation(properties.endDate),EndDateType:cdk().stringToCloudFormation(properties.endDateType),EphemeralStorage:cdk().booleanToCloudFormation(properties.ephemeralStorage),InstanceCount:cdk().numberToCloudFormation(properties.instanceCount),InstanceMatchCriteria:cdk().stringToCloudFormation(properties.instanceMatchCriteria),InstancePlatform:cdk().stringToCloudFormation(properties.instancePlatform),InstanceType:cdk().stringToCloudFormation(properties.instanceType),OutPostArn:cdk().stringToCloudFormation(properties.outPostArn),PlacementGroupArn:cdk().stringToCloudFormation(properties.placementGroupArn),TagSpecifications:cdk().listMapper(convertCfnCapacityReservationTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),Tenancy:cdk().stringToCloudFormation(properties.tenancy),UnusedReservationBillingOwnerId:cdk().stringToCloudFormation(properties.unusedReservationBillingOwnerId)}):properties}function CfnCapacityReservationPropsFromCloudFormation(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("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("endDate","EndDate",properties.EndDate!=null?cfn_parse().FromCloudFormation.getString(properties.EndDate):void 0),ret.addPropertyResult("endDateType","EndDateType",properties.EndDateType!=null?cfn_parse().FromCloudFormation.getString(properties.EndDateType):void 0),ret.addPropertyResult("ephemeralStorage","EphemeralStorage",properties.EphemeralStorage!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EphemeralStorage):void 0),ret.addPropertyResult("instanceCount","InstanceCount",properties.InstanceCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.InstanceCount):void 0),ret.addPropertyResult("instanceMatchCriteria","InstanceMatchCriteria",properties.InstanceMatchCriteria!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceMatchCriteria):void 0),ret.addPropertyResult("instancePlatform","InstancePlatform",properties.InstancePlatform!=null?cfn_parse().FromCloudFormation.getString(properties.InstancePlatform):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("outPostArn","OutPostArn",properties.OutPostArn!=null?cfn_parse().FromCloudFormation.getString(properties.OutPostArn):void 0),ret.addPropertyResult("placementGroupArn","PlacementGroupArn",properties.PlacementGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.PlacementGroupArn):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnCapacityReservationTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse().FromCloudFormation.getString(properties.Tenancy):void 0),ret.addPropertyResult("unusedReservationBillingOwnerId","UnusedReservationBillingOwnerId",properties.UnusedReservationBillingOwnerId!=null?cfn_parse().FromCloudFormation.getString(properties.UnusedReservationBillingOwnerId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCapacityReservationFleet extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnCapacityReservationFleet",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::CapacityReservationFleet";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCapacityReservationFleetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCapacityReservationFleet(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 isCfnCapacityReservationFleet(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCapacityReservationFleet.CFN_RESOURCE_TYPE_NAME}static fromCapacityReservationFleetId(scope,id,capacityReservationFleetId){class Import extends cdk().Resource{capacityReservationFleetRef;constructor(scope2,id2,capacityReservationFleetId2){super(scope2,id2),this.capacityReservationFleetRef={capacityReservationFleetId:capacityReservationFleetId2}}}return new Import(scope,id,capacityReservationFleetId)}static arnForCapacityReservationFleet(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ICapacityReservationFleetRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCapacityReservationFleet),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:capacity-reservation-fleet/${CapacityReservationFleetId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,CapacityReservationFleetId:resource.capacityReservationFleetRef.capacityReservationFleetId})}_allocationStrategy;_endDate;_instanceMatchCriteria;_instanceTypeSpecifications;_noRemoveEndDate;_removeEndDate;_tagSpecifications;_tenancy;_totalTargetCapacity;cfnPropertyNames={allocationStrategy:"AllocationStrategy",endDate:"EndDate",instanceMatchCriteria:"InstanceMatchCriteria",instanceTypeSpecifications:"InstanceTypeSpecifications",noRemoveEndDate:"NoRemoveEndDate",removeEndDate:"RemoveEndDate",tagSpecifications:"TagSpecifications",tenancy:"Tenancy",totalTargetCapacity:"TotalTargetCapacity"};constructor(scope,id,props={}){super(scope,id,{type:CfnCapacityReservationFleet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnCapacityReservationFleetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCapacityReservationFleet),error}this._allocationStrategy=props.allocationStrategy,this._endDate=props.endDate,this._instanceMatchCriteria=props.instanceMatchCriteria,this._instanceTypeSpecifications=props.instanceTypeSpecifications,this._noRemoveEndDate=props.noRemoveEndDate,this._removeEndDate=props.removeEndDate,this._tagSpecifications=props.tagSpecifications,this._tenancy=props.tenancy,this._totalTargetCapacity=props.totalTargetCapacity}get capacityReservationFleetRef(){return{capacityReservationFleetId:this.ref}}get allocationStrategy(){return this._allocationStrategy}set allocationStrategy(value){cdk().traceProperty(this.node,"AllocationStrategy"),this._allocationStrategy=value}get endDate(){return this._endDate}set endDate(value){cdk().traceProperty(this.node,"EndDate"),this._endDate=value}get instanceMatchCriteria(){return this._instanceMatchCriteria}set instanceMatchCriteria(value){cdk().traceProperty(this.node,"InstanceMatchCriteria"),this._instanceMatchCriteria=value}get instanceTypeSpecifications(){return this._instanceTypeSpecifications}set instanceTypeSpecifications(value){cdk().traceProperty(this.node,"InstanceTypeSpecifications"),this._instanceTypeSpecifications=value}get noRemoveEndDate(){return this._noRemoveEndDate}set noRemoveEndDate(value){cdk().traceProperty(this.node,"NoRemoveEndDate"),this._noRemoveEndDate=value}get removeEndDate(){return this._removeEndDate}set removeEndDate(value){cdk().traceProperty(this.node,"RemoveEndDate"),this._removeEndDate=value}get tagSpecifications(){return this._tagSpecifications}set tagSpecifications(value){cdk().traceProperty(this.node,"TagSpecifications"),this._tagSpecifications=value}get tenancy(){return this._tenancy}set tenancy(value){cdk().traceProperty(this.node,"Tenancy"),this._tenancy=value}get totalTargetCapacity(){return this._totalTargetCapacity}set totalTargetCapacity(value){cdk().traceProperty(this.node,"TotalTargetCapacity"),this._totalTargetCapacity=value}get attrCapacityReservationFleetId(){return cdk().Token.asString(this.getAtt("CapacityReservationFleetId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{allocationStrategy:this._allocationStrategy,endDate:this._endDate,instanceMatchCriteria:this._instanceMatchCriteria,instanceTypeSpecifications:this._instanceTypeSpecifications,noRemoveEndDate:this._noRemoveEndDate,removeEndDate:this._removeEndDate,tagSpecifications:this._tagSpecifications,tenancy:this._tenancy,totalTargetCapacity:this._totalTargetCapacity}}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",CfnCapacityReservationFleet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCapacityReservationFleetPropsToCloudFormation(props)}}exports.CfnCapacityReservationFleet=CfnCapacityReservationFleet;function CfnCapacityReservationFleetTagSpecificationPropertyValidator(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("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function convertCfnCapacityReservationFleetTagSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityReservationFleetTagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk().stringToCloudFormation(properties.resourceType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCapacityReservationFleetTagSpecificationPropertyFromCloudFormation(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("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):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}function CfnCapacityReservationFleetInstanceTypeSpecificationPropertyValidator(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("availabilityZoneId",cdk().validateString)(properties.availabilityZoneId)),errors.collect(cdk().propertyValidator("ebsOptimized",cdk().validateBoolean)(properties.ebsOptimized)),errors.collect(cdk().propertyValidator("instancePlatform",cdk().validateString)(properties.instancePlatform)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("priority",cdk().validateNumber)(properties.priority)),errors.collect(cdk().propertyValidator("weight",cdk().validateNumber)(properties.weight)),errors.wrap('supplied properties not correct for "InstanceTypeSpecificationProperty"')}function convertCfnCapacityReservationFleetInstanceTypeSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityReservationFleetInstanceTypeSpecificationPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk().stringToCloudFormation(properties.availabilityZoneId),EbsOptimized:cdk().booleanToCloudFormation(properties.ebsOptimized),InstancePlatform:cdk().stringToCloudFormation(properties.instancePlatform),InstanceType:cdk().stringToCloudFormation(properties.instanceType),Priority:cdk().numberToCloudFormation(properties.priority),Weight:cdk().numberToCloudFormation(properties.weight)}):properties}function CfnCapacityReservationFleetInstanceTypeSpecificationPropertyFromCloudFormation(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("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("instancePlatform","InstancePlatform",properties.InstancePlatform!=null?cfn_parse().FromCloudFormation.getString(properties.InstancePlatform):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse().FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("weight","Weight",properties.Weight!=null?cfn_parse().FromCloudFormation.getNumber(properties.Weight):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityReservationFleetPropsValidator(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("allocationStrategy",cdk().validateString)(properties.allocationStrategy)),errors.collect(cdk().propertyValidator("endDate",cdk().validateString)(properties.endDate)),errors.collect(cdk().propertyValidator("instanceMatchCriteria",cdk().validateString)(properties.instanceMatchCriteria)),errors.collect(cdk().propertyValidator("instanceTypeSpecifications",cdk().listValidator(CfnCapacityReservationFleetInstanceTypeSpecificationPropertyValidator))(properties.instanceTypeSpecifications)),errors.collect(cdk().propertyValidator("noRemoveEndDate",cdk().validateBoolean)(properties.noRemoveEndDate)),errors.collect(cdk().propertyValidator("removeEndDate",cdk().validateBoolean)(properties.removeEndDate)),errors.collect(cdk().propertyValidator("tagSpecifications",cdk().listValidator(CfnCapacityReservationFleetTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk().propertyValidator("tenancy",cdk().validateString)(properties.tenancy)),errors.collect(cdk().propertyValidator("totalTargetCapacity",cdk().validateNumber)(properties.totalTargetCapacity)),errors.wrap('supplied properties not correct for "CfnCapacityReservationFleetProps"')}function convertCfnCapacityReservationFleetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityReservationFleetPropsValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),EndDate:cdk().stringToCloudFormation(properties.endDate),InstanceMatchCriteria:cdk().stringToCloudFormation(properties.instanceMatchCriteria),InstanceTypeSpecifications:cdk().listMapper(convertCfnCapacityReservationFleetInstanceTypeSpecificationPropertyToCloudFormation)(properties.instanceTypeSpecifications),NoRemoveEndDate:cdk().booleanToCloudFormation(properties.noRemoveEndDate),RemoveEndDate:cdk().booleanToCloudFormation(properties.removeEndDate),TagSpecifications:cdk().listMapper(convertCfnCapacityReservationFleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),Tenancy:cdk().stringToCloudFormation(properties.tenancy),TotalTargetCapacity:cdk().numberToCloudFormation(properties.totalTargetCapacity)}):properties}function CfnCapacityReservationFleetPropsFromCloudFormation(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("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("endDate","EndDate",properties.EndDate!=null?cfn_parse().FromCloudFormation.getString(properties.EndDate):void 0),ret.addPropertyResult("instanceMatchCriteria","InstanceMatchCriteria",properties.InstanceMatchCriteria!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceMatchCriteria):void 0),ret.addPropertyResult("instanceTypeSpecifications","InstanceTypeSpecifications",properties.InstanceTypeSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnCapacityReservationFleetInstanceTypeSpecificationPropertyFromCloudFormation)(properties.InstanceTypeSpecifications):void 0),ret.addPropertyResult("noRemoveEndDate","NoRemoveEndDate",properties.NoRemoveEndDate!=null?cfn_parse().FromCloudFormation.getBoolean(properties.NoRemoveEndDate):void 0),ret.addPropertyResult("removeEndDate","RemoveEndDate",properties.RemoveEndDate!=null?cfn_parse().FromCloudFormation.getBoolean(properties.RemoveEndDate):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnCapacityReservationFleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse().FromCloudFormation.getString(properties.Tenancy):void 0),ret.addPropertyResult("totalTargetCapacity","TotalTargetCapacity",properties.TotalTargetCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.TotalTargetCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCarrierGateway extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnCarrierGateway",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::CarrierGateway";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCarrierGatewayPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCarrierGateway(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 isCfnCarrierGateway(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCarrierGateway.CFN_RESOURCE_TYPE_NAME}static fromCarrierGatewayId(scope,id,carrierGatewayId){class Import extends cdk().Resource{carrierGatewayRef;constructor(scope2,id2,carrierGatewayId2){super(scope2,id2),this.carrierGatewayRef={carrierGatewayId:carrierGatewayId2}}}return new Import(scope,id,carrierGatewayId)}static arnForCarrierGateway(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ICarrierGatewayRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCarrierGateway),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:carrier-gateway/${CarrierGatewayId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,CarrierGatewayId:resource.carrierGatewayRef.carrierGatewayId})}tags;_tagsRaw;_vpcId;cfnPropertyNames={tags:"Tags",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnCarrierGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnCarrierGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCarrierGateway),error}cdk().requireProperty(props,"vpcId",this),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::CarrierGateway",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get carrierGatewayRef(){return{carrierGatewayId:this.ref}}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrCarrierGatewayId(){return cdk().Token.asString(this.getAtt("CarrierGatewayId",cdk().ResolutionTypeHint.STRING))}get attrOwnerId(){return cdk().Token.asString(this.getAtt("OwnerId",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.tags.renderTags(),vpcId:this._vpcId}}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",CfnCarrierGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCarrierGatewayPropsToCloudFormation(props)}}exports.CfnCarrierGateway=CfnCarrierGateway;function CfnCarrierGatewayPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnCarrierGatewayProps"')}function convertCfnCarrierGatewayPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCarrierGatewayPropsValidator(properties).assertSuccess(),{Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnCarrierGatewayPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnAuthorizationRule extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnAuthorizationRule",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnAuthorizationRule";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnAuthorizationRulePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnClientVpnAuthorizationRule(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 isCfnClientVpnAuthorizationRule(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnClientVpnAuthorizationRule.CFN_RESOURCE_TYPE_NAME}_accessGroupId;_authorizeAllGroups;_clientVpnEndpointId;_description;_targetNetworkCidr;cfnPropertyNames={accessGroupId:"AccessGroupId",authorizeAllGroups:"AuthorizeAllGroups",clientVpnEndpointId:"ClientVpnEndpointId",description:"Description",targetNetworkCidr:"TargetNetworkCidr"};constructor(scope,id,props){super(scope,id,{type:CfnClientVpnAuthorizationRule.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnClientVpnAuthorizationRuleProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnAuthorizationRule),error}cdk().requireProperty(props,"clientVpnEndpointId",this),cdk().requireProperty(props,"targetNetworkCidr",this),this._accessGroupId=props.accessGroupId,this._authorizeAllGroups=props.authorizeAllGroups,this._clientVpnEndpointId=props.clientVpnEndpointId,this._description=props.description,this._targetNetworkCidr=props.targetNetworkCidr}get clientVpnAuthorizationRuleRef(){return{clientVpnAuthorizationRuleId:this.ref}}get accessGroupId(){return this._accessGroupId}set accessGroupId(value){cdk().traceProperty(this.node,"AccessGroupId"),this._accessGroupId=value}get authorizeAllGroups(){return this._authorizeAllGroups}set authorizeAllGroups(value){cdk().traceProperty(this.node,"AuthorizeAllGroups"),this._authorizeAllGroups=value}get clientVpnEndpointId(){return this._clientVpnEndpointId}set clientVpnEndpointId(value){cdk().traceProperty(this.node,"ClientVpnEndpointId"),this._clientVpnEndpointId=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get targetNetworkCidr(){return this._targetNetworkCidr}set targetNetworkCidr(value){cdk().traceProperty(this.node,"TargetNetworkCidr"),this._targetNetworkCidr=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{accessGroupId:this._accessGroupId,authorizeAllGroups:this._authorizeAllGroups,clientVpnEndpointId:this._clientVpnEndpointId,description:this._description,targetNetworkCidr:this._targetNetworkCidr}}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",CfnClientVpnAuthorizationRule.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnClientVpnAuthorizationRulePropsToCloudFormation(props)}}exports.CfnClientVpnAuthorizationRule=CfnClientVpnAuthorizationRule;function CfnClientVpnAuthorizationRulePropsValidator(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("accessGroupId",cdk().validateString)(properties.accessGroupId)),errors.collect(cdk().propertyValidator("authorizeAllGroups",cdk().validateBoolean)(properties.authorizeAllGroups)),errors.collect(cdk().propertyValidator("clientVpnEndpointId",cdk().requiredValidator)(properties.clientVpnEndpointId)),errors.collect(cdk().propertyValidator("clientVpnEndpointId",cdk().validateString)(properties.clientVpnEndpointId)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("targetNetworkCidr",cdk().requiredValidator)(properties.targetNetworkCidr)),errors.collect(cdk().propertyValidator("targetNetworkCidr",cdk().validateString)(properties.targetNetworkCidr)),errors.wrap('supplied properties not correct for "CfnClientVpnAuthorizationRuleProps"')}function convertCfnClientVpnAuthorizationRulePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnAuthorizationRulePropsValidator(properties).assertSuccess(),{AccessGroupId:cdk().stringToCloudFormation(properties.accessGroupId),AuthorizeAllGroups:cdk().booleanToCloudFormation(properties.authorizeAllGroups),ClientVpnEndpointId:cdk().stringToCloudFormation(properties.clientVpnEndpointId),Description:cdk().stringToCloudFormation(properties.description),TargetNetworkCidr:cdk().stringToCloudFormation(properties.targetNetworkCidr)}):properties}function CfnClientVpnAuthorizationRulePropsFromCloudFormation(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("accessGroupId","AccessGroupId",properties.AccessGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.AccessGroupId):void 0),ret.addPropertyResult("authorizeAllGroups","AuthorizeAllGroups",properties.AuthorizeAllGroups!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AuthorizeAllGroups):void 0),ret.addPropertyResult("clientVpnEndpointId","ClientVpnEndpointId",properties.ClientVpnEndpointId!=null?cfn_parse().FromCloudFormation.getString(properties.ClientVpnEndpointId):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("targetNetworkCidr","TargetNetworkCidr",properties.TargetNetworkCidr!=null?cfn_parse().FromCloudFormation.getString(properties.TargetNetworkCidr):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnEndpoint extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnEndpoint",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnEndpoint";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnEndpointPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnClientVpnEndpoint(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 isCfnClientVpnEndpoint(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnClientVpnEndpoint.CFN_RESOURCE_TYPE_NAME}static fromClientVpnEndpointId(scope,id,clientVpnEndpointId){class Import extends cdk().Resource{clientVpnEndpointRef;constructor(scope2,id2,clientVpnEndpointId2){super(scope2,id2),this.clientVpnEndpointRef={clientVpnEndpointId:clientVpnEndpointId2}}}return new Import(scope,id,clientVpnEndpointId)}static arnForClientVpnEndpoint(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IClientVpnEndpointRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForClientVpnEndpoint),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:client-vpn-endpoint/${ClientVpnEndpointId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,ClientVpnEndpointId:resource.clientVpnEndpointRef.clientVpnEndpointId})}_authenticationOptions;_clientCidrBlock;_clientConnectOptions;_clientLoginBannerOptions;_clientRouteEnforcementOptions;_connectionLogOptions;_description;_disconnectOnSessionTimeout;_dnsServers;_endpointIpAddressType;_securityGroupIds;_selfServicePortal;_serverCertificateArn;_sessionTimeoutHours;_splitTunnel;_tagSpecifications;_trafficIpAddressType;_transportProtocol;_vpcId;_vpnPort;cfnPropertyNames={authenticationOptions:"AuthenticationOptions",clientCidrBlock:"ClientCidrBlock",clientConnectOptions:"ClientConnectOptions",clientLoginBannerOptions:"ClientLoginBannerOptions",clientRouteEnforcementOptions:"ClientRouteEnforcementOptions",connectionLogOptions:"ConnectionLogOptions",description:"Description",disconnectOnSessionTimeout:"DisconnectOnSessionTimeout",dnsServers:"DnsServers",endpointIpAddressType:"EndpointIpAddressType",securityGroupIds:"SecurityGroupIds",selfServicePortal:"SelfServicePortal",serverCertificateArn:"ServerCertificateArn",sessionTimeoutHours:"SessionTimeoutHours",splitTunnel:"SplitTunnel",tagSpecifications:"TagSpecifications",trafficIpAddressType:"TrafficIpAddressType",transportProtocol:"TransportProtocol",vpcId:"VpcId",vpnPort:"VpnPort"};constructor(scope,id,props){super(scope,id,{type:CfnClientVpnEndpoint.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnClientVpnEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnEndpoint),error}cdk().requireProperty(props,"authenticationOptions",this),cdk().requireProperty(props,"connectionLogOptions",this),cdk().requireProperty(props,"serverCertificateArn",this),this._authenticationOptions=props.authenticationOptions,this._clientCidrBlock=props.clientCidrBlock,this._clientConnectOptions=props.clientConnectOptions,this._clientLoginBannerOptions=props.clientLoginBannerOptions,this._clientRouteEnforcementOptions=props.clientRouteEnforcementOptions,this._connectionLogOptions=props.connectionLogOptions,this._description=props.description,this._disconnectOnSessionTimeout=props.disconnectOnSessionTimeout,this._dnsServers=props.dnsServers,this._endpointIpAddressType=props.endpointIpAddressType,this._securityGroupIds=props.securityGroupIds,this._selfServicePortal=props.selfServicePortal,this._serverCertificateArn=props.serverCertificateArn,this._sessionTimeoutHours=props.sessionTimeoutHours,this._splitTunnel=props.splitTunnel,this._tagSpecifications=props.tagSpecifications,this._trafficIpAddressType=props.trafficIpAddressType,this._transportProtocol=props.transportProtocol,this._vpcId=props.vpcId,this._vpnPort=props.vpnPort}get clientVpnEndpointRef(){return{clientVpnEndpointId:this.ref}}get authenticationOptions(){return this._authenticationOptions}set authenticationOptions(value){cdk().traceProperty(this.node,"AuthenticationOptions"),this._authenticationOptions=value}get clientCidrBlock(){return this._clientCidrBlock}set clientCidrBlock(value){cdk().traceProperty(this.node,"ClientCidrBlock"),this._clientCidrBlock=value}get clientConnectOptions(){return this._clientConnectOptions}set clientConnectOptions(value){cdk().traceProperty(this.node,"ClientConnectOptions"),this._clientConnectOptions=value}get clientLoginBannerOptions(){return this._clientLoginBannerOptions}set clientLoginBannerOptions(value){cdk().traceProperty(this.node,"ClientLoginBannerOptions"),this._clientLoginBannerOptions=value}get clientRouteEnforcementOptions(){return this._clientRouteEnforcementOptions}set clientRouteEnforcementOptions(value){cdk().traceProperty(this.node,"ClientRouteEnforcementOptions"),this._clientRouteEnforcementOptions=value}get connectionLogOptions(){return this._connectionLogOptions}set connectionLogOptions(value){cdk().traceProperty(this.node,"ConnectionLogOptions"),this._connectionLogOptions=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get disconnectOnSessionTimeout(){return this._disconnectOnSessionTimeout}set disconnectOnSessionTimeout(value){cdk().traceProperty(this.node,"DisconnectOnSessionTimeout"),this._disconnectOnSessionTimeout=value}get dnsServers(){return this._dnsServers}set dnsServers(value){cdk().traceProperty(this.node,"DnsServers"),this._dnsServers=value}get endpointIpAddressType(){return this._endpointIpAddressType}set endpointIpAddressType(value){cdk().traceProperty(this.node,"EndpointIpAddressType"),this._endpointIpAddressType=value}get securityGroupIds(){return this._securityGroupIds}set securityGroupIds(value){cdk().traceProperty(this.node,"SecurityGroupIds"),this._securityGroupIds=value}get selfServicePortal(){return this._selfServicePortal}set selfServicePortal(value){cdk().traceProperty(this.node,"SelfServicePortal"),this._selfServicePortal=value}get serverCertificateArn(){return this._serverCertificateArn}set serverCertificateArn(value){cdk().traceProperty(this.node,"ServerCertificateArn"),this._serverCertificateArn=value}get sessionTimeoutHours(){return this._sessionTimeoutHours}set sessionTimeoutHours(value){cdk().traceProperty(this.node,"SessionTimeoutHours"),this._sessionTimeoutHours=value}get splitTunnel(){return this._splitTunnel}set splitTunnel(value){cdk().traceProperty(this.node,"SplitTunnel"),this._splitTunnel=value}get tagSpecifications(){return this._tagSpecifications}set tagSpecifications(value){cdk().traceProperty(this.node,"TagSpecifications"),this._tagSpecifications=value}get trafficIpAddressType(){return this._trafficIpAddressType}set trafficIpAddressType(value){cdk().traceProperty(this.node,"TrafficIpAddressType"),this._trafficIpAddressType=value}get transportProtocol(){return this._transportProtocol}set transportProtocol(value){cdk().traceProperty(this.node,"TransportProtocol"),this._transportProtocol=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get vpnPort(){return this._vpnPort}set vpnPort(value){cdk().traceProperty(this.node,"VpnPort"),this._vpnPort=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{authenticationOptions:this._authenticationOptions,clientCidrBlock:this._clientCidrBlock,clientConnectOptions:this._clientConnectOptions,clientLoginBannerOptions:this._clientLoginBannerOptions,clientRouteEnforcementOptions:this._clientRouteEnforcementOptions,connectionLogOptions:this._connectionLogOptions,description:this._description,disconnectOnSessionTimeout:this._disconnectOnSessionTimeout,dnsServers:this._dnsServers,endpointIpAddressType:this._endpointIpAddressType,securityGroupIds:this._securityGroupIds,selfServicePortal:this._selfServicePortal,serverCertificateArn:this._serverCertificateArn,sessionTimeoutHours:this._sessionTimeoutHours,splitTunnel:this._splitTunnel,tagSpecifications:this._tagSpecifications,trafficIpAddressType:this._trafficIpAddressType,transportProtocol:this._transportProtocol,vpcId:this._vpcId,vpnPort:this._vpnPort}}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",CfnClientVpnEndpoint.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnClientVpnEndpointPropsToCloudFormation(props)}}exports.CfnClientVpnEndpoint=CfnClientVpnEndpoint;function CfnClientVpnEndpointClientConnectOptionsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("lambdaFunctionArn",cdk().validateString)(properties.lambdaFunctionArn)),errors.wrap('supplied properties not correct for "ClientConnectOptionsProperty"')}function convertCfnClientVpnEndpointClientConnectOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnEndpointClientConnectOptionsPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled),LambdaFunctionArn:cdk().stringToCloudFormation(properties.lambdaFunctionArn)}):properties}function CfnClientVpnEndpointClientConnectOptionsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("lambdaFunctionArn","LambdaFunctionArn",properties.LambdaFunctionArn!=null?cfn_parse().FromCloudFormation.getString(properties.LambdaFunctionArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpointTagSpecificationPropertyValidator(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("resourceType",cdk().requiredValidator)(properties.resourceType)),errors.collect(cdk().propertyValidator("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("tags",cdk().requiredValidator)(properties.tags)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function convertCfnClientVpnEndpointTagSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnEndpointTagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk().stringToCloudFormation(properties.resourceType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnClientVpnEndpointTagSpecificationPropertyFromCloudFormation(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("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):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}function CfnClientVpnEndpointCertificateAuthenticationRequestPropertyValidator(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("clientRootCertificateChainArn",cdk().requiredValidator)(properties.clientRootCertificateChainArn)),errors.collect(cdk().propertyValidator("clientRootCertificateChainArn",cdk().validateString)(properties.clientRootCertificateChainArn)),errors.wrap('supplied properties not correct for "CertificateAuthenticationRequestProperty"')}function convertCfnClientVpnEndpointCertificateAuthenticationRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnEndpointCertificateAuthenticationRequestPropertyValidator(properties).assertSuccess(),{ClientRootCertificateChainArn:cdk().stringToCloudFormation(properties.clientRootCertificateChainArn)}):properties}function CfnClientVpnEndpointCertificateAuthenticationRequestPropertyFromCloudFormation(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("clientRootCertificateChainArn","ClientRootCertificateChainArn",properties.ClientRootCertificateChainArn!=null?cfn_parse().FromCloudFormation.getString(properties.ClientRootCertificateChainArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpointFederatedAuthenticationRequestPropertyValidator(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("samlProviderArn",cdk().requiredValidator)(properties.samlProviderArn)),errors.collect(cdk().propertyValidator("samlProviderArn",cdk().validateString)(properties.samlProviderArn)),errors.collect(cdk().propertyValidator("selfServiceSamlProviderArn",cdk().validateString)(properties.selfServiceSamlProviderArn)),errors.wrap('supplied properties not correct for "FederatedAuthenticationRequestProperty"')}function convertCfnClientVpnEndpointFederatedAuthenticationRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnEndpointFederatedAuthenticationRequestPropertyValidator(properties).assertSuccess(),{SAMLProviderArn:cdk().stringToCloudFormation(properties.samlProviderArn),SelfServiceSAMLProviderArn:cdk().stringToCloudFormation(properties.selfServiceSamlProviderArn)}):properties}function CfnClientVpnEndpointFederatedAuthenticationRequestPropertyFromCloudFormation(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("samlProviderArn","SAMLProviderArn",properties.SAMLProviderArn!=null?cfn_parse().FromCloudFormation.getString(properties.SAMLProviderArn):void 0),ret.addPropertyResult("selfServiceSamlProviderArn","SelfServiceSAMLProviderArn",properties.SelfServiceSAMLProviderArn!=null?cfn_parse().FromCloudFormation.getString(properties.SelfServiceSAMLProviderArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyValidator(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("directoryId",cdk().requiredValidator)(properties.directoryId)),errors.collect(cdk().propertyValidator("directoryId",cdk().validateString)(properties.directoryId)),errors.wrap('supplied properties not correct for "DirectoryServiceAuthenticationRequestProperty"')}function convertCfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyValidator(properties).assertSuccess(),{DirectoryId:cdk().stringToCloudFormation(properties.directoryId)}):properties}function CfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyFromCloudFormation(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("directoryId","DirectoryId",properties.DirectoryId!=null?cfn_parse().FromCloudFormation.getString(properties.DirectoryId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpointClientAuthenticationRequestPropertyValidator(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("activeDirectory",CfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyValidator)(properties.activeDirectory)),errors.collect(cdk().propertyValidator("federatedAuthentication",CfnClientVpnEndpointFederatedAuthenticationRequestPropertyValidator)(properties.federatedAuthentication)),errors.collect(cdk().propertyValidator("mutualAuthentication",CfnClientVpnEndpointCertificateAuthenticationRequestPropertyValidator)(properties.mutualAuthentication)),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 "ClientAuthenticationRequestProperty"')}function convertCfnClientVpnEndpointClientAuthenticationRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnEndpointClientAuthenticationRequestPropertyValidator(properties).assertSuccess(),{ActiveDirectory:convertCfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyToCloudFormation(properties.activeDirectory),FederatedAuthentication:convertCfnClientVpnEndpointFederatedAuthenticationRequestPropertyToCloudFormation(properties.federatedAuthentication),MutualAuthentication:convertCfnClientVpnEndpointCertificateAuthenticationRequestPropertyToCloudFormation(properties.mutualAuthentication),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnClientVpnEndpointClientAuthenticationRequestPropertyFromCloudFormation(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("activeDirectory","ActiveDirectory",properties.ActiveDirectory!=null?CfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyFromCloudFormation(properties.ActiveDirectory):void 0),ret.addPropertyResult("federatedAuthentication","FederatedAuthentication",properties.FederatedAuthentication!=null?CfnClientVpnEndpointFederatedAuthenticationRequestPropertyFromCloudFormation(properties.FederatedAuthentication):void 0),ret.addPropertyResult("mutualAuthentication","MutualAuthentication",properties.MutualAuthentication!=null?CfnClientVpnEndpointCertificateAuthenticationRequestPropertyFromCloudFormation(properties.MutualAuthentication):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpointConnectionLogOptionsPropertyValidator(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("cloudwatchLogGroup",cdk().validateString)(properties.cloudwatchLogGroup)),errors.collect(cdk().propertyValidator("cloudwatchLogStream",cdk().validateString)(properties.cloudwatchLogStream)),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "ConnectionLogOptionsProperty"')}function convertCfnClientVpnEndpointConnectionLogOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnEndpointConnectionLogOptionsPropertyValidator(properties).assertSuccess(),{CloudwatchLogGroup:cdk().stringToCloudFormation(properties.cloudwatchLogGroup),CloudwatchLogStream:cdk().stringToCloudFormation(properties.cloudwatchLogStream),Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnClientVpnEndpointConnectionLogOptionsPropertyFromCloudFormation(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("cloudwatchLogGroup","CloudwatchLogGroup",properties.CloudwatchLogGroup!=null?cfn_parse().FromCloudFormation.getString(properties.CloudwatchLogGroup):void 0),ret.addPropertyResult("cloudwatchLogStream","CloudwatchLogStream",properties.CloudwatchLogStream!=null?cfn_parse().FromCloudFormation.getString(properties.CloudwatchLogStream):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpointClientLoginBannerOptionsPropertyValidator(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("bannerText",cdk().validateString)(properties.bannerText)),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "ClientLoginBannerOptionsProperty"')}function convertCfnClientVpnEndpointClientLoginBannerOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnEndpointClientLoginBannerOptionsPropertyValidator(properties).assertSuccess(),{BannerText:cdk().stringToCloudFormation(properties.bannerText),Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnClientVpnEndpointClientLoginBannerOptionsPropertyFromCloudFormation(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("bannerText","BannerText",properties.BannerText!=null?cfn_parse().FromCloudFormation.getString(properties.BannerText):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpointClientRouteEnforcementOptionsPropertyValidator(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("enforced",cdk().validateBoolean)(properties.enforced)),errors.wrap('supplied properties not correct for "ClientRouteEnforcementOptionsProperty"')}function convertCfnClientVpnEndpointClientRouteEnforcementOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnEndpointClientRouteEnforcementOptionsPropertyValidator(properties).assertSuccess(),{Enforced:cdk().booleanToCloudFormation(properties.enforced)}):properties}function CfnClientVpnEndpointClientRouteEnforcementOptionsPropertyFromCloudFormation(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("enforced","Enforced",properties.Enforced!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enforced):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpointPropsValidator(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("authenticationOptions",cdk().requiredValidator)(properties.authenticationOptions)),errors.collect(cdk().propertyValidator("authenticationOptions",cdk().listValidator(CfnClientVpnEndpointClientAuthenticationRequestPropertyValidator))(properties.authenticationOptions)),errors.collect(cdk().propertyValidator("clientCidrBlock",cdk().validateString)(properties.clientCidrBlock)),errors.collect(cdk().propertyValidator("clientConnectOptions",CfnClientVpnEndpointClientConnectOptionsPropertyValidator)(properties.clientConnectOptions)),errors.collect(cdk().propertyValidator("clientLoginBannerOptions",CfnClientVpnEndpointClientLoginBannerOptionsPropertyValidator)(properties.clientLoginBannerOptions)),errors.collect(cdk().propertyValidator("clientRouteEnforcementOptions",CfnClientVpnEndpointClientRouteEnforcementOptionsPropertyValidator)(properties.clientRouteEnforcementOptions)),errors.collect(cdk().propertyValidator("connectionLogOptions",cdk().requiredValidator)(properties.connectionLogOptions)),errors.collect(cdk().propertyValidator("connectionLogOptions",CfnClientVpnEndpointConnectionLogOptionsPropertyValidator)(properties.connectionLogOptions)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("disconnectOnSessionTimeout",cdk().validateBoolean)(properties.disconnectOnSessionTimeout)),errors.collect(cdk().propertyValidator("dnsServers",cdk().listValidator(cdk().validateString))(properties.dnsServers)),errors.collect(cdk().propertyValidator("endpointIpAddressType",cdk().validateString)(properties.endpointIpAddressType)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().listValidator(cdk().validateString))(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("selfServicePortal",cdk().validateString)(properties.selfServicePortal)),errors.collect(cdk().propertyValidator("serverCertificateArn",cdk().requiredValidator)(properties.serverCertificateArn)),errors.collect(cdk().propertyValidator("serverCertificateArn",cdk().validateString)(properties.serverCertificateArn)),errors.collect(cdk().propertyValidator("sessionTimeoutHours",cdk().validateNumber)(properties.sessionTimeoutHours)),errors.collect(cdk().propertyValidator("splitTunnel",cdk().validateBoolean)(properties.splitTunnel)),errors.collect(cdk().propertyValidator("tagSpecifications",cdk().listValidator(CfnClientVpnEndpointTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk().propertyValidator("trafficIpAddressType",cdk().validateString)(properties.trafficIpAddressType)),errors.collect(cdk().propertyValidator("transportProtocol",cdk().validateString)(properties.transportProtocol)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpnPort",cdk().validateNumber)(properties.vpnPort)),errors.wrap('supplied properties not correct for "CfnClientVpnEndpointProps"')}function convertCfnClientVpnEndpointPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnEndpointPropsValidator(properties).assertSuccess(),{AuthenticationOptions:cdk().listMapper(convertCfnClientVpnEndpointClientAuthenticationRequestPropertyToCloudFormation)(properties.authenticationOptions),ClientCidrBlock:cdk().stringToCloudFormation(properties.clientCidrBlock),ClientConnectOptions:convertCfnClientVpnEndpointClientConnectOptionsPropertyToCloudFormation(properties.clientConnectOptions),ClientLoginBannerOptions:convertCfnClientVpnEndpointClientLoginBannerOptionsPropertyToCloudFormation(properties.clientLoginBannerOptions),ClientRouteEnforcementOptions:convertCfnClientVpnEndpointClientRouteEnforcementOptionsPropertyToCloudFormation(properties.clientRouteEnforcementOptions),ConnectionLogOptions:convertCfnClientVpnEndpointConnectionLogOptionsPropertyToCloudFormation(properties.connectionLogOptions),Description:cdk().stringToCloudFormation(properties.description),DisconnectOnSessionTimeout:cdk().booleanToCloudFormation(properties.disconnectOnSessionTimeout),DnsServers:cdk().listMapper(cdk().stringToCloudFormation)(properties.dnsServers),EndpointIpAddressType:cdk().stringToCloudFormation(properties.endpointIpAddressType),SecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroupIds),SelfServicePortal:cdk().stringToCloudFormation(properties.selfServicePortal),ServerCertificateArn:cdk().stringToCloudFormation(properties.serverCertificateArn),SessionTimeoutHours:cdk().numberToCloudFormation(properties.sessionTimeoutHours),SplitTunnel:cdk().booleanToCloudFormation(properties.splitTunnel),TagSpecifications:cdk().listMapper(convertCfnClientVpnEndpointTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),TrafficIpAddressType:cdk().stringToCloudFormation(properties.trafficIpAddressType),TransportProtocol:cdk().stringToCloudFormation(properties.transportProtocol),VpcId:cdk().stringToCloudFormation(properties.vpcId),VpnPort:cdk().numberToCloudFormation(properties.vpnPort)}):properties}function CfnClientVpnEndpointPropsFromCloudFormation(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("authenticationOptions","AuthenticationOptions",properties.AuthenticationOptions!=null?cfn_parse().FromCloudFormation.getArray(CfnClientVpnEndpointClientAuthenticationRequestPropertyFromCloudFormation)(properties.AuthenticationOptions):void 0),ret.addPropertyResult("clientCidrBlock","ClientCidrBlock",properties.ClientCidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.ClientCidrBlock):void 0),ret.addPropertyResult("clientConnectOptions","ClientConnectOptions",properties.ClientConnectOptions!=null?CfnClientVpnEndpointClientConnectOptionsPropertyFromCloudFormation(properties.ClientConnectOptions):void 0),ret.addPropertyResult("clientLoginBannerOptions","ClientLoginBannerOptions",properties.ClientLoginBannerOptions!=null?CfnClientVpnEndpointClientLoginBannerOptionsPropertyFromCloudFormation(properties.ClientLoginBannerOptions):void 0),ret.addPropertyResult("clientRouteEnforcementOptions","ClientRouteEnforcementOptions",properties.ClientRouteEnforcementOptions!=null?CfnClientVpnEndpointClientRouteEnforcementOptionsPropertyFromCloudFormation(properties.ClientRouteEnforcementOptions):void 0),ret.addPropertyResult("connectionLogOptions","ConnectionLogOptions",properties.ConnectionLogOptions!=null?CfnClientVpnEndpointConnectionLogOptionsPropertyFromCloudFormation(properties.ConnectionLogOptions):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("disconnectOnSessionTimeout","DisconnectOnSessionTimeout",properties.DisconnectOnSessionTimeout!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DisconnectOnSessionTimeout):void 0),ret.addPropertyResult("dnsServers","DnsServers",properties.DnsServers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DnsServers):void 0),ret.addPropertyResult("endpointIpAddressType","EndpointIpAddressType",properties.EndpointIpAddressType!=null?cfn_parse().FromCloudFormation.getString(properties.EndpointIpAddressType):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroupIds):void 0),ret.addPropertyResult("selfServicePortal","SelfServicePortal",properties.SelfServicePortal!=null?cfn_parse().FromCloudFormation.getString(properties.SelfServicePortal):void 0),ret.addPropertyResult("serverCertificateArn","ServerCertificateArn",properties.ServerCertificateArn!=null?cfn_parse().FromCloudFormation.getString(properties.ServerCertificateArn):void 0),ret.addPropertyResult("sessionTimeoutHours","SessionTimeoutHours",properties.SessionTimeoutHours!=null?cfn_parse().FromCloudFormation.getNumber(properties.SessionTimeoutHours):void 0),ret.addPropertyResult("splitTunnel","SplitTunnel",properties.SplitTunnel!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SplitTunnel):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnClientVpnEndpointTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("trafficIpAddressType","TrafficIpAddressType",properties.TrafficIpAddressType!=null?cfn_parse().FromCloudFormation.getString(properties.TrafficIpAddressType):void 0),ret.addPropertyResult("transportProtocol","TransportProtocol",properties.TransportProtocol!=null?cfn_parse().FromCloudFormation.getString(properties.TransportProtocol):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addPropertyResult("vpnPort","VpnPort",properties.VpnPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.VpnPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnRoute extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnRoute",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnRoute";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnRoutePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnClientVpnRoute(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 isCfnClientVpnRoute(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnClientVpnRoute.CFN_RESOURCE_TYPE_NAME}_clientVpnEndpointId;_description;_destinationCidrBlock;_targetVpcSubnetId;cfnPropertyNames={clientVpnEndpointId:"ClientVpnEndpointId",description:"Description",destinationCidrBlock:"DestinationCidrBlock",targetVpcSubnetId:"TargetVpcSubnetId"};constructor(scope,id,props){super(scope,id,{type:CfnClientVpnRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnClientVpnRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnRoute),error}cdk().requireProperty(props,"clientVpnEndpointId",this),cdk().requireProperty(props,"destinationCidrBlock",this),this._clientVpnEndpointId=props.clientVpnEndpointId,this._description=props.description,this._destinationCidrBlock=props.destinationCidrBlock,this._targetVpcSubnetId=props.targetVpcSubnetId}get clientVpnRouteRef(){return{clientVpnRouteId:this.ref}}get clientVpnEndpointId(){return this._clientVpnEndpointId}set clientVpnEndpointId(value){cdk().traceProperty(this.node,"ClientVpnEndpointId"),this._clientVpnEndpointId=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get destinationCidrBlock(){return this._destinationCidrBlock}set destinationCidrBlock(value){cdk().traceProperty(this.node,"DestinationCidrBlock"),this._destinationCidrBlock=value}get targetVpcSubnetId(){return this._targetVpcSubnetId}set targetVpcSubnetId(value){cdk().traceProperty(this.node,"TargetVpcSubnetId"),this._targetVpcSubnetId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{clientVpnEndpointId:this._clientVpnEndpointId,description:this._description,destinationCidrBlock:this._destinationCidrBlock,targetVpcSubnetId:this._targetVpcSubnetId}}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",CfnClientVpnRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnClientVpnRoutePropsToCloudFormation(props)}}exports.CfnClientVpnRoute=CfnClientVpnRoute;function CfnClientVpnRoutePropsValidator(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("clientVpnEndpointId",cdk().requiredValidator)(properties.clientVpnEndpointId)),errors.collect(cdk().propertyValidator("clientVpnEndpointId",cdk().validateString)(properties.clientVpnEndpointId)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("destinationCidrBlock",cdk().requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("destinationCidrBlock",cdk().validateString)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("targetVpcSubnetId",cdk().validateString)(properties.targetVpcSubnetId)),errors.wrap('supplied properties not correct for "CfnClientVpnRouteProps"')}function convertCfnClientVpnRoutePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnRoutePropsValidator(properties).assertSuccess(),{ClientVpnEndpointId:cdk().stringToCloudFormation(properties.clientVpnEndpointId),Description:cdk().stringToCloudFormation(properties.description),DestinationCidrBlock:cdk().stringToCloudFormation(properties.destinationCidrBlock),TargetVpcSubnetId:cdk().stringToCloudFormation(properties.targetVpcSubnetId)}):properties}function CfnClientVpnRoutePropsFromCloudFormation(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("clientVpnEndpointId","ClientVpnEndpointId",properties.ClientVpnEndpointId!=null?cfn_parse().FromCloudFormation.getString(properties.ClientVpnEndpointId):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",properties.DestinationCidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationCidrBlock):void 0),ret.addPropertyResult("targetVpcSubnetId","TargetVpcSubnetId",properties.TargetVpcSubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.TargetVpcSubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnTargetNetworkAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnTargetNetworkAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnTargetNetworkAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnTargetNetworkAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnClientVpnTargetNetworkAssociation(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 isCfnClientVpnTargetNetworkAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnClientVpnTargetNetworkAssociation.CFN_RESOURCE_TYPE_NAME}_clientVpnEndpointId;_subnetId;cfnPropertyNames={clientVpnEndpointId:"ClientVpnEndpointId",subnetId:"SubnetId"};constructor(scope,id,props){super(scope,id,{type:CfnClientVpnTargetNetworkAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnClientVpnTargetNetworkAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnTargetNetworkAssociation),error}cdk().requireProperty(props,"clientVpnEndpointId",this),this._clientVpnEndpointId=props.clientVpnEndpointId,this._subnetId=props.subnetId}get clientVpnTargetNetworkAssociationRef(){return{clientVpnTargetNetworkAssociationId:this.ref}}get clientVpnEndpointId(){return this._clientVpnEndpointId}set clientVpnEndpointId(value){cdk().traceProperty(this.node,"ClientVpnEndpointId"),this._clientVpnEndpointId=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{clientVpnEndpointId:this._clientVpnEndpointId,subnetId:this._subnetId}}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",CfnClientVpnTargetNetworkAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnClientVpnTargetNetworkAssociationPropsToCloudFormation(props)}}exports.CfnClientVpnTargetNetworkAssociation=CfnClientVpnTargetNetworkAssociation;function CfnClientVpnTargetNetworkAssociationPropsValidator(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("clientVpnEndpointId",cdk().requiredValidator)(properties.clientVpnEndpointId)),errors.collect(cdk().propertyValidator("clientVpnEndpointId",cdk().validateString)(properties.clientVpnEndpointId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnClientVpnTargetNetworkAssociationProps"')}function convertCfnClientVpnTargetNetworkAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnClientVpnTargetNetworkAssociationPropsValidator(properties).assertSuccess(),{ClientVpnEndpointId:cdk().stringToCloudFormation(properties.clientVpnEndpointId),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnClientVpnTargetNetworkAssociationPropsFromCloudFormation(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("clientVpnEndpointId","ClientVpnEndpointId",properties.ClientVpnEndpointId!=null?cfn_parse().FromCloudFormation.getString(properties.ClientVpnEndpointId):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCustomerGateway extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnCustomerGateway",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::CustomerGateway";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCustomerGatewayPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCustomerGateway(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 isCfnCustomerGateway(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCustomerGateway.CFN_RESOURCE_TYPE_NAME}static fromCustomerGatewayId(scope,id,customerGatewayId){class Import extends cdk().Resource{customerGatewayRef;constructor(scope2,id2,customerGatewayId2){super(scope2,id2),this.customerGatewayRef={customerGatewayId:customerGatewayId2}}}return new Import(scope,id,customerGatewayId)}static arnForCustomerGateway(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ICustomerGatewayRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCustomerGateway),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:customer-gateway/${CustomerGatewayId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,CustomerGatewayId:resource.customerGatewayRef.customerGatewayId})}_bgpAsn;_bgpAsnExtended;_certificateArn;_deviceName;_ipAddress;tags;_tagsRaw;_type;cfnPropertyNames={bgpAsn:"BgpAsn",bgpAsnExtended:"BgpAsnExtended",certificateArn:"CertificateArn",deviceName:"DeviceName",ipAddress:"IpAddress",tags:"Tags",type:"Type"};constructor(scope,id,props){super(scope,id,{type:CfnCustomerGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnCustomerGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCustomerGateway),error}cdk().requireProperty(props,"ipAddress",this),cdk().requireProperty(props,"type",this),this._bgpAsn=props.bgpAsn,this._bgpAsnExtended=props.bgpAsnExtended,this._certificateArn=props.certificateArn,this._deviceName=props.deviceName,this._ipAddress=props.ipAddress,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::CustomerGateway",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._type=props.type}get customerGatewayRef(){return{customerGatewayId:this.ref}}get bgpAsn(){return this._bgpAsn}set bgpAsn(value){cdk().traceProperty(this.node,"BgpAsn"),this._bgpAsn=value}get bgpAsnExtended(){return this._bgpAsnExtended}set bgpAsnExtended(value){cdk().traceProperty(this.node,"BgpAsnExtended"),this._bgpAsnExtended=value}get certificateArn(){return this._certificateArn}set certificateArn(value){cdk().traceProperty(this.node,"CertificateArn"),this._certificateArn=value}get deviceName(){return this._deviceName}set deviceName(value){cdk().traceProperty(this.node,"DeviceName"),this._deviceName=value}get ipAddress(){return this._ipAddress}set ipAddress(value){cdk().traceProperty(this.node,"IpAddress"),this._ipAddress=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get type(){return this._type}set type(value){cdk().traceProperty(this.node,"Type"),this._type=value}get attrCustomerGatewayId(){return cdk().Token.asString(this.getAtt("CustomerGatewayId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{bgpAsn:this._bgpAsn,bgpAsnExtended:this._bgpAsnExtended,certificateArn:this._certificateArn,deviceName:this._deviceName,ipAddress:this._ipAddress,tags:this.tags.renderTags(),type:this._type}}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",CfnCustomerGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCustomerGatewayPropsToCloudFormation(props)}}exports.CfnCustomerGateway=CfnCustomerGateway;function CfnCustomerGatewayPropsValidator(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("bgpAsn",cdk().validateNumber)(properties.bgpAsn)),errors.collect(cdk().propertyValidator("bgpAsnExtended",cdk().validateNumber)(properties.bgpAsnExtended)),errors.collect(cdk().propertyValidator("certificateArn",cdk().validateString)(properties.certificateArn)),errors.collect(cdk().propertyValidator("deviceName",cdk().validateString)(properties.deviceName)),errors.collect(cdk().propertyValidator("ipAddress",cdk().requiredValidator)(properties.ipAddress)),errors.collect(cdk().propertyValidator("ipAddress",cdk().validateString)(properties.ipAddress)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),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 "CfnCustomerGatewayProps"')}function convertCfnCustomerGatewayPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCustomerGatewayPropsValidator(properties).assertSuccess(),{BgpAsn:cdk().numberToCloudFormation(properties.bgpAsn),BgpAsnExtended:cdk().numberToCloudFormation(properties.bgpAsnExtended),CertificateArn:cdk().stringToCloudFormation(properties.certificateArn),DeviceName:cdk().stringToCloudFormation(properties.deviceName),IpAddress:cdk().stringToCloudFormation(properties.ipAddress),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnCustomerGatewayPropsFromCloudFormation(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("bgpAsn","BgpAsn",properties.BgpAsn!=null?cfn_parse().FromCloudFormation.getNumber(properties.BgpAsn):void 0),ret.addPropertyResult("bgpAsnExtended","BgpAsnExtended",properties.BgpAsnExtended!=null?cfn_parse().FromCloudFormation.getNumber(properties.BgpAsnExtended):void 0),ret.addPropertyResult("certificateArn","CertificateArn",properties.CertificateArn!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateArn):void 0),ret.addPropertyResult("deviceName","DeviceName",properties.DeviceName!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceName):void 0),ret.addPropertyResult("ipAddress","IpAddress",properties.IpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.IpAddress):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDHCPOptions extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnDHCPOptions",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::DHCPOptions";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDHCPOptionsPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDHCPOptions(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 isCfnDHCPOptions(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDHCPOptions.CFN_RESOURCE_TYPE_NAME}static fromDhcpOptionsId(scope,id,dhcpOptionsId){class Import extends cdk().Resource{dhcpOptionsRef;constructor(scope2,id2,dhcpOptionsId2){super(scope2,id2),this.dhcpOptionsRef={dhcpOptionsId:dhcpOptionsId2}}}return new Import(scope,id,dhcpOptionsId)}static arnForDHCPOptions(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IDHCPOptionsRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDHCPOptions),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:dhcp-options/${DhcpOptionsId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,DhcpOptionsId:resource.dhcpOptionsRef.dhcpOptionsId})}_domainName;_domainNameServers;_ipv6AddressPreferredLeaseTime;_netbiosNameServers;_netbiosNodeType;_ntpServers;tags;_tagsRaw;cfnPropertyNames={domainName:"DomainName",domainNameServers:"DomainNameServers",ipv6AddressPreferredLeaseTime:"Ipv6AddressPreferredLeaseTime",netbiosNameServers:"NetbiosNameServers",netbiosNodeType:"NetbiosNodeType",ntpServers:"NtpServers",tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnDHCPOptions.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnDHCPOptionsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDHCPOptions),error}this._domainName=props.domainName,this._domainNameServers=props.domainNameServers,this._ipv6AddressPreferredLeaseTime=props.ipv6AddressPreferredLeaseTime,this._netbiosNameServers=props.netbiosNameServers,this._netbiosNodeType=props.netbiosNodeType,this._ntpServers=props.ntpServers,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::DHCPOptions",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get dhcpOptionsRef(){return{dhcpOptionsId:this.ref}}get domainName(){return this._domainName}set domainName(value){cdk().traceProperty(this.node,"DomainName"),this._domainName=value}get domainNameServers(){return this._domainNameServers}set domainNameServers(value){cdk().traceProperty(this.node,"DomainNameServers"),this._domainNameServers=value}get ipv6AddressPreferredLeaseTime(){return this._ipv6AddressPreferredLeaseTime}set ipv6AddressPreferredLeaseTime(value){cdk().traceProperty(this.node,"Ipv6AddressPreferredLeaseTime"),this._ipv6AddressPreferredLeaseTime=value}get netbiosNameServers(){return this._netbiosNameServers}set netbiosNameServers(value){cdk().traceProperty(this.node,"NetbiosNameServers"),this._netbiosNameServers=value}get netbiosNodeType(){return this._netbiosNodeType}set netbiosNodeType(value){cdk().traceProperty(this.node,"NetbiosNodeType"),this._netbiosNodeType=value}get ntpServers(){return this._ntpServers}set ntpServers(value){cdk().traceProperty(this.node,"NtpServers"),this._ntpServers=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrDhcpOptionsId(){return cdk().Token.asString(this.getAtt("DhcpOptionsId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{domainName:this._domainName,domainNameServers:this._domainNameServers,ipv6AddressPreferredLeaseTime:this._ipv6AddressPreferredLeaseTime,netbiosNameServers:this._netbiosNameServers,netbiosNodeType:this._netbiosNodeType,ntpServers:this._ntpServers,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",CfnDHCPOptions.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDHCPOptionsPropsToCloudFormation(props)}}exports.CfnDHCPOptions=CfnDHCPOptions;function CfnDHCPOptionsPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("domainName",cdk().validateString)(properties.domainName)),errors.collect(cdk().propertyValidator("domainNameServers",cdk().listValidator(cdk().validateString))(properties.domainNameServers)),errors.collect(cdk().propertyValidator("ipv6AddressPreferredLeaseTime",cdk().validateNumber)(properties.ipv6AddressPreferredLeaseTime)),errors.collect(cdk().propertyValidator("netbiosNameServers",cdk().listValidator(cdk().validateString))(properties.netbiosNameServers)),errors.collect(cdk().propertyValidator("netbiosNodeType",cdk().validateNumber)(properties.netbiosNodeType)),errors.collect(cdk().propertyValidator("ntpServers",cdk().listValidator(cdk().validateString))(properties.ntpServers)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDHCPOptionsProps"')}function convertCfnDHCPOptionsPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDHCPOptionsPropsValidator(properties).assertSuccess(),{DomainName:cdk().stringToCloudFormation(properties.domainName),DomainNameServers:cdk().listMapper(cdk().stringToCloudFormation)(properties.domainNameServers),Ipv6AddressPreferredLeaseTime:cdk().numberToCloudFormation(properties.ipv6AddressPreferredLeaseTime),NetbiosNameServers:cdk().listMapper(cdk().stringToCloudFormation)(properties.netbiosNameServers),NetbiosNodeType:cdk().numberToCloudFormation(properties.netbiosNodeType),NtpServers:cdk().listMapper(cdk().stringToCloudFormation)(properties.ntpServers),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDHCPOptionsPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("domainName","DomainName",properties.DomainName!=null?cfn_parse().FromCloudFormation.getString(properties.DomainName):void 0),ret.addPropertyResult("domainNameServers","DomainNameServers",properties.DomainNameServers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DomainNameServers):void 0),ret.addPropertyResult("ipv6AddressPreferredLeaseTime","Ipv6AddressPreferredLeaseTime",properties.Ipv6AddressPreferredLeaseTime!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6AddressPreferredLeaseTime):void 0),ret.addPropertyResult("netbiosNameServers","NetbiosNameServers",properties.NetbiosNameServers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.NetbiosNameServers):void 0),ret.addPropertyResult("netbiosNodeType","NetbiosNodeType",properties.NetbiosNodeType!=null?cfn_parse().FromCloudFormation.getNumber(properties.NetbiosNodeType):void 0),ret.addPropertyResult("ntpServers","NtpServers",properties.NtpServers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.NtpServers):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 CfnEC2Fleet extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnEC2Fleet",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::EC2Fleet";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEC2FleetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnEC2Fleet(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 isCfnEC2Fleet(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnEC2Fleet.CFN_RESOURCE_TYPE_NAME}static fromFleetId(scope,id,fleetId){class Import extends cdk().Resource{ec2FleetRef;constructor(scope2,id2,fleetId2){super(scope2,id2),this.ec2FleetRef={fleetId:fleetId2}}}return new Import(scope,id,fleetId)}static arnForEC2Fleet(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IEC2FleetRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForEC2Fleet),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:fleet/${FleetId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,FleetId:resource.ec2FleetRef.fleetId})}_context;_excessCapacityTerminationPolicy;_launchTemplateConfigs;_onDemandOptions;_replaceUnhealthyInstances;_reservedCapacityOptions;_spotOptions;_tagSpecifications;_targetCapacitySpecification;_terminateInstancesWithExpiration;_type;_validFrom;_validUntil;cfnPropertyNames={context:"Context",excessCapacityTerminationPolicy:"ExcessCapacityTerminationPolicy",launchTemplateConfigs:"LaunchTemplateConfigs",onDemandOptions:"OnDemandOptions",replaceUnhealthyInstances:"ReplaceUnhealthyInstances",reservedCapacityOptions:"ReservedCapacityOptions",spotOptions:"SpotOptions",tagSpecifications:"TagSpecifications",targetCapacitySpecification:"TargetCapacitySpecification",terminateInstancesWithExpiration:"TerminateInstancesWithExpiration",type:"Type",validFrom:"ValidFrom",validUntil:"ValidUntil"};constructor(scope,id,props){super(scope,id,{type:CfnEC2Fleet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnEC2FleetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEC2Fleet),error}cdk().requireProperty(props,"launchTemplateConfigs",this),cdk().requireProperty(props,"targetCapacitySpecification",this),this._context=props.context,this._excessCapacityTerminationPolicy=props.excessCapacityTerminationPolicy,this._launchTemplateConfigs=props.launchTemplateConfigs,this._onDemandOptions=props.onDemandOptions,this._replaceUnhealthyInstances=props.replaceUnhealthyInstances,this._reservedCapacityOptions=props.reservedCapacityOptions,this._spotOptions=props.spotOptions,this._tagSpecifications=props.tagSpecifications,this._targetCapacitySpecification=props.targetCapacitySpecification,this._terminateInstancesWithExpiration=props.terminateInstancesWithExpiration,this._type=props.type,this._validFrom=props.validFrom,this._validUntil=props.validUntil}get ec2FleetRef(){return{fleetId:this.ref}}get context(){return this._context}set context(value){cdk().traceProperty(this.node,"Context"),this._context=value}get excessCapacityTerminationPolicy(){return this._excessCapacityTerminationPolicy}set excessCapacityTerminationPolicy(value){cdk().traceProperty(this.node,"ExcessCapacityTerminationPolicy"),this._excessCapacityTerminationPolicy=value}get launchTemplateConfigs(){return this._launchTemplateConfigs}set launchTemplateConfigs(value){cdk().traceProperty(this.node,"LaunchTemplateConfigs"),this._launchTemplateConfigs=value}get onDemandOptions(){return this._onDemandOptions}set onDemandOptions(value){cdk().traceProperty(this.node,"OnDemandOptions"),this._onDemandOptions=value}get replaceUnhealthyInstances(){return this._replaceUnhealthyInstances}set replaceUnhealthyInstances(value){cdk().traceProperty(this.node,"ReplaceUnhealthyInstances"),this._replaceUnhealthyInstances=value}get reservedCapacityOptions(){return this._reservedCapacityOptions}set reservedCapacityOptions(value){cdk().traceProperty(this.node,"ReservedCapacityOptions"),this._reservedCapacityOptions=value}get spotOptions(){return this._spotOptions}set spotOptions(value){cdk().traceProperty(this.node,"SpotOptions"),this._spotOptions=value}get tagSpecifications(){return this._tagSpecifications}set tagSpecifications(value){cdk().traceProperty(this.node,"TagSpecifications"),this._tagSpecifications=value}get targetCapacitySpecification(){return this._targetCapacitySpecification}set targetCapacitySpecification(value){cdk().traceProperty(this.node,"TargetCapacitySpecification"),this._targetCapacitySpecification=value}get terminateInstancesWithExpiration(){return this._terminateInstancesWithExpiration}set terminateInstancesWithExpiration(value){cdk().traceProperty(this.node,"TerminateInstancesWithExpiration"),this._terminateInstancesWithExpiration=value}get type(){return this._type}set type(value){cdk().traceProperty(this.node,"Type"),this._type=value}get validFrom(){return this._validFrom}set validFrom(value){cdk().traceProperty(this.node,"ValidFrom"),this._validFrom=value}get validUntil(){return this._validUntil}set validUntil(value){cdk().traceProperty(this.node,"ValidUntil"),this._validUntil=value}get attrFleetId(){return cdk().Token.asString(this.getAtt("FleetId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{context:this._context,excessCapacityTerminationPolicy:this._excessCapacityTerminationPolicy,launchTemplateConfigs:this._launchTemplateConfigs,onDemandOptions:this._onDemandOptions,replaceUnhealthyInstances:this._replaceUnhealthyInstances,reservedCapacityOptions:this._reservedCapacityOptions,spotOptions:this._spotOptions,tagSpecifications:this._tagSpecifications,targetCapacitySpecification:this._targetCapacitySpecification,terminateInstancesWithExpiration:this._terminateInstancesWithExpiration,type:this._type,validFrom:this._validFrom,validUntil:this._validUntil}}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",CfnEC2Fleet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnEC2FleetPropsToCloudFormation(props)}}exports.CfnEC2Fleet=CfnEC2Fleet;function CfnEC2FleetTargetCapacitySpecificationRequestPropertyValidator(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("defaultTargetCapacityType",cdk().validateString)(properties.defaultTargetCapacityType)),errors.collect(cdk().propertyValidator("onDemandTargetCapacity",cdk().validateNumber)(properties.onDemandTargetCapacity)),errors.collect(cdk().propertyValidator("spotTargetCapacity",cdk().validateNumber)(properties.spotTargetCapacity)),errors.collect(cdk().propertyValidator("targetCapacityUnitType",cdk().validateString)(properties.targetCapacityUnitType)),errors.collect(cdk().propertyValidator("totalTargetCapacity",cdk().requiredValidator)(properties.totalTargetCapacity)),errors.collect(cdk().propertyValidator("totalTargetCapacity",cdk().validateNumber)(properties.totalTargetCapacity)),errors.wrap('supplied properties not correct for "TargetCapacitySpecificationRequestProperty"')}function convertCfnEC2FleetTargetCapacitySpecificationRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetTargetCapacitySpecificationRequestPropertyValidator(properties).assertSuccess(),{DefaultTargetCapacityType:cdk().stringToCloudFormation(properties.defaultTargetCapacityType),OnDemandTargetCapacity:cdk().numberToCloudFormation(properties.onDemandTargetCapacity),SpotTargetCapacity:cdk().numberToCloudFormation(properties.spotTargetCapacity),TargetCapacityUnitType:cdk().stringToCloudFormation(properties.targetCapacityUnitType),TotalTargetCapacity:cdk().numberToCloudFormation(properties.totalTargetCapacity)}):properties}function CfnEC2FleetTargetCapacitySpecificationRequestPropertyFromCloudFormation(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("defaultTargetCapacityType","DefaultTargetCapacityType",properties.DefaultTargetCapacityType!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultTargetCapacityType):void 0),ret.addPropertyResult("onDemandTargetCapacity","OnDemandTargetCapacity",properties.OnDemandTargetCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.OnDemandTargetCapacity):void 0),ret.addPropertyResult("spotTargetCapacity","SpotTargetCapacity",properties.SpotTargetCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.SpotTargetCapacity):void 0),ret.addPropertyResult("targetCapacityUnitType","TargetCapacityUnitType",properties.TargetCapacityUnitType!=null?cfn_parse().FromCloudFormation.getString(properties.TargetCapacityUnitType):void 0),ret.addPropertyResult("totalTargetCapacity","TotalTargetCapacity",properties.TotalTargetCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.TotalTargetCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetCapacityReservationOptionsRequestPropertyValidator(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("usageStrategy",cdk().validateString)(properties.usageStrategy)),errors.wrap('supplied properties not correct for "CapacityReservationOptionsRequestProperty"')}function convertCfnEC2FleetCapacityReservationOptionsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetCapacityReservationOptionsRequestPropertyValidator(properties).assertSuccess(),{UsageStrategy:cdk().stringToCloudFormation(properties.usageStrategy)}):properties}function CfnEC2FleetCapacityReservationOptionsRequestPropertyFromCloudFormation(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("usageStrategy","UsageStrategy",properties.UsageStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.UsageStrategy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetOnDemandOptionsRequestPropertyValidator(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("allocationStrategy",cdk().validateString)(properties.allocationStrategy)),errors.collect(cdk().propertyValidator("capacityReservationOptions",CfnEC2FleetCapacityReservationOptionsRequestPropertyValidator)(properties.capacityReservationOptions)),errors.collect(cdk().propertyValidator("maxTotalPrice",cdk().validateString)(properties.maxTotalPrice)),errors.collect(cdk().propertyValidator("minTargetCapacity",cdk().validateNumber)(properties.minTargetCapacity)),errors.collect(cdk().propertyValidator("singleAvailabilityZone",cdk().validateBoolean)(properties.singleAvailabilityZone)),errors.collect(cdk().propertyValidator("singleInstanceType",cdk().validateBoolean)(properties.singleInstanceType)),errors.wrap('supplied properties not correct for "OnDemandOptionsRequestProperty"')}function convertCfnEC2FleetOnDemandOptionsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetOnDemandOptionsRequestPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),CapacityReservationOptions:convertCfnEC2FleetCapacityReservationOptionsRequestPropertyToCloudFormation(properties.capacityReservationOptions),MaxTotalPrice:cdk().stringToCloudFormation(properties.maxTotalPrice),MinTargetCapacity:cdk().numberToCloudFormation(properties.minTargetCapacity),SingleAvailabilityZone:cdk().booleanToCloudFormation(properties.singleAvailabilityZone),SingleInstanceType:cdk().booleanToCloudFormation(properties.singleInstanceType)}):properties}function CfnEC2FleetOnDemandOptionsRequestPropertyFromCloudFormation(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("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("capacityReservationOptions","CapacityReservationOptions",properties.CapacityReservationOptions!=null?CfnEC2FleetCapacityReservationOptionsRequestPropertyFromCloudFormation(properties.CapacityReservationOptions):void 0),ret.addPropertyResult("maxTotalPrice","MaxTotalPrice",properties.MaxTotalPrice!=null?cfn_parse().FromCloudFormation.getString(properties.MaxTotalPrice):void 0),ret.addPropertyResult("minTargetCapacity","MinTargetCapacity",properties.MinTargetCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinTargetCapacity):void 0),ret.addPropertyResult("singleAvailabilityZone","SingleAvailabilityZone",properties.SingleAvailabilityZone!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SingleAvailabilityZone):void 0),ret.addPropertyResult("singleInstanceType","SingleInstanceType",properties.SingleInstanceType!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SingleInstanceType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetTagSpecificationPropertyValidator(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("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function convertCfnEC2FleetTagSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetTagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk().stringToCloudFormation(properties.resourceType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnEC2FleetTagSpecificationPropertyFromCloudFormation(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("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):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}function CfnEC2FleetCapacityRebalancePropertyValidator(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("replacementStrategy",cdk().validateString)(properties.replacementStrategy)),errors.collect(cdk().propertyValidator("terminationDelay",cdk().validateNumber)(properties.terminationDelay)),errors.wrap('supplied properties not correct for "CapacityRebalanceProperty"')}function convertCfnEC2FleetCapacityRebalancePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetCapacityRebalancePropertyValidator(properties).assertSuccess(),{ReplacementStrategy:cdk().stringToCloudFormation(properties.replacementStrategy),TerminationDelay:cdk().numberToCloudFormation(properties.terminationDelay)}):properties}function CfnEC2FleetCapacityRebalancePropertyFromCloudFormation(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("replacementStrategy","ReplacementStrategy",properties.ReplacementStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.ReplacementStrategy):void 0),ret.addPropertyResult("terminationDelay","TerminationDelay",properties.TerminationDelay!=null?cfn_parse().FromCloudFormation.getNumber(properties.TerminationDelay):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetMaintenanceStrategiesPropertyValidator(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("capacityRebalance",CfnEC2FleetCapacityRebalancePropertyValidator)(properties.capacityRebalance)),errors.wrap('supplied properties not correct for "MaintenanceStrategiesProperty"')}function convertCfnEC2FleetMaintenanceStrategiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetMaintenanceStrategiesPropertyValidator(properties).assertSuccess(),{CapacityRebalance:convertCfnEC2FleetCapacityRebalancePropertyToCloudFormation(properties.capacityRebalance)}):properties}function CfnEC2FleetMaintenanceStrategiesPropertyFromCloudFormation(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("capacityRebalance","CapacityRebalance",properties.CapacityRebalance!=null?CfnEC2FleetCapacityRebalancePropertyFromCloudFormation(properties.CapacityRebalance):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetSpotOptionsRequestPropertyValidator(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("allocationStrategy",cdk().validateString)(properties.allocationStrategy)),errors.collect(cdk().propertyValidator("instanceInterruptionBehavior",cdk().validateString)(properties.instanceInterruptionBehavior)),errors.collect(cdk().propertyValidator("instancePoolsToUseCount",cdk().validateNumber)(properties.instancePoolsToUseCount)),errors.collect(cdk().propertyValidator("maintenanceStrategies",CfnEC2FleetMaintenanceStrategiesPropertyValidator)(properties.maintenanceStrategies)),errors.collect(cdk().propertyValidator("maxTotalPrice",cdk().validateString)(properties.maxTotalPrice)),errors.collect(cdk().propertyValidator("minTargetCapacity",cdk().validateNumber)(properties.minTargetCapacity)),errors.collect(cdk().propertyValidator("singleAvailabilityZone",cdk().validateBoolean)(properties.singleAvailabilityZone)),errors.collect(cdk().propertyValidator("singleInstanceType",cdk().validateBoolean)(properties.singleInstanceType)),errors.wrap('supplied properties not correct for "SpotOptionsRequestProperty"')}function convertCfnEC2FleetSpotOptionsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetSpotOptionsRequestPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),InstanceInterruptionBehavior:cdk().stringToCloudFormation(properties.instanceInterruptionBehavior),InstancePoolsToUseCount:cdk().numberToCloudFormation(properties.instancePoolsToUseCount),MaintenanceStrategies:convertCfnEC2FleetMaintenanceStrategiesPropertyToCloudFormation(properties.maintenanceStrategies),MaxTotalPrice:cdk().stringToCloudFormation(properties.maxTotalPrice),MinTargetCapacity:cdk().numberToCloudFormation(properties.minTargetCapacity),SingleAvailabilityZone:cdk().booleanToCloudFormation(properties.singleAvailabilityZone),SingleInstanceType:cdk().booleanToCloudFormation(properties.singleInstanceType)}):properties}function CfnEC2FleetSpotOptionsRequestPropertyFromCloudFormation(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("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("instanceInterruptionBehavior","InstanceInterruptionBehavior",properties.InstanceInterruptionBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceInterruptionBehavior):void 0),ret.addPropertyResult("instancePoolsToUseCount","InstancePoolsToUseCount",properties.InstancePoolsToUseCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.InstancePoolsToUseCount):void 0),ret.addPropertyResult("maintenanceStrategies","MaintenanceStrategies",properties.MaintenanceStrategies!=null?CfnEC2FleetMaintenanceStrategiesPropertyFromCloudFormation(properties.MaintenanceStrategies):void 0),ret.addPropertyResult("maxTotalPrice","MaxTotalPrice",properties.MaxTotalPrice!=null?cfn_parse().FromCloudFormation.getString(properties.MaxTotalPrice):void 0),ret.addPropertyResult("minTargetCapacity","MinTargetCapacity",properties.MinTargetCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinTargetCapacity):void 0),ret.addPropertyResult("singleAvailabilityZone","SingleAvailabilityZone",properties.SingleAvailabilityZone!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SingleAvailabilityZone):void 0),ret.addPropertyResult("singleInstanceType","SingleInstanceType",properties.SingleInstanceType!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SingleInstanceType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("launchTemplateId",cdk().validateString)(properties.launchTemplateId)),errors.collect(cdk().propertyValidator("launchTemplateName",cdk().validateString)(properties.launchTemplateName)),errors.collect(cdk().propertyValidator("launchTemplateSpecificationUserData",cdk().validateString)(properties.launchTemplateSpecificationUserData)),errors.collect(cdk().propertyValidator("version",cdk().requiredValidator)(properties.version)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateSpecificationRequestProperty"')}function convertCfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyValidator(properties).assertSuccess(),{LaunchTemplateId:cdk().stringToCloudFormation(properties.launchTemplateId),LaunchTemplateName:cdk().stringToCloudFormation(properties.launchTemplateName),LaunchTemplateSpecificationUserData:cdk().stringToCloudFormation(properties.launchTemplateSpecificationUserData),Version:cdk().stringToCloudFormation(properties.version)}):properties}function CfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("launchTemplateSpecificationUserData","LaunchTemplateSpecificationUserData",properties.LaunchTemplateSpecificationUserData!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateSpecificationUserData):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetPlacementPropertyValidator(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("affinity",cdk().validateString)(properties.affinity)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("groupName",cdk().validateString)(properties.groupName)),errors.collect(cdk().propertyValidator("hostId",cdk().validateString)(properties.hostId)),errors.collect(cdk().propertyValidator("hostResourceGroupArn",cdk().validateString)(properties.hostResourceGroupArn)),errors.collect(cdk().propertyValidator("partitionNumber",cdk().validateNumber)(properties.partitionNumber)),errors.collect(cdk().propertyValidator("spreadDomain",cdk().validateString)(properties.spreadDomain)),errors.collect(cdk().propertyValidator("tenancy",cdk().validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "PlacementProperty"')}function convertCfnEC2FleetPlacementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetPlacementPropertyValidator(properties).assertSuccess(),{Affinity:cdk().stringToCloudFormation(properties.affinity),AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),GroupName:cdk().stringToCloudFormation(properties.groupName),HostId:cdk().stringToCloudFormation(properties.hostId),HostResourceGroupArn:cdk().stringToCloudFormation(properties.hostResourceGroupArn),PartitionNumber:cdk().numberToCloudFormation(properties.partitionNumber),SpreadDomain:cdk().stringToCloudFormation(properties.spreadDomain),Tenancy:cdk().stringToCloudFormation(properties.tenancy)}):properties}function CfnEC2FleetPlacementPropertyFromCloudFormation(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("affinity","Affinity",properties.Affinity!=null?cfn_parse().FromCloudFormation.getString(properties.Affinity):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse().FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("hostId","HostId",properties.HostId!=null?cfn_parse().FromCloudFormation.getString(properties.HostId):void 0),ret.addPropertyResult("hostResourceGroupArn","HostResourceGroupArn",properties.HostResourceGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.HostResourceGroupArn):void 0),ret.addPropertyResult("partitionNumber","PartitionNumber",properties.PartitionNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.PartitionNumber):void 0),ret.addPropertyResult("spreadDomain","SpreadDomain",properties.SpreadDomain!=null?cfn_parse().FromCloudFormation.getString(properties.SpreadDomain):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse().FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetNetworkInterfaceCountRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkInterfaceCountRequestProperty"')}function convertCfnEC2FleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetNetworkInterfaceCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetNetworkInterfaceCountRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetMemoryGiBPerVCpuRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryGiBPerVCpuRequestProperty"')}function convertCfnEC2FleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetMemoryGiBPerVCpuRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetVCpuCountRangeRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "VCpuCountRangeRequestProperty"')}function convertCfnEC2FleetVCpuCountRangeRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetVCpuCountRangeRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetVCpuCountRangeRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetNetworkBandwidthGbpsRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkBandwidthGbpsRequestProperty"')}function convertCfnEC2FleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetNetworkBandwidthGbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetAcceleratorCountRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorCountRequestProperty"')}function convertCfnEC2FleetAcceleratorCountRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetAcceleratorCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetAcceleratorCountRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "BaselineEbsBandwidthMbpsRequestProperty"')}function convertCfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorTotalMemoryMiBRequestProperty"')}function convertCfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetMemoryMiBRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryMiBRequestProperty"')}function convertCfnEC2FleetMemoryMiBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetMemoryMiBRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetTotalLocalStorageGBRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "TotalLocalStorageGBRequestProperty"')}function convertCfnEC2FleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetTotalLocalStorageGBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetTotalLocalStorageGBRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetPerformanceFactorReferenceRequestPropertyValidator(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("instanceFamily",cdk().validateString)(properties.instanceFamily)),errors.wrap('supplied properties not correct for "PerformanceFactorReferenceRequestProperty"')}function convertCfnEC2FleetPerformanceFactorReferenceRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetPerformanceFactorReferenceRequestPropertyValidator(properties).assertSuccess(),{InstanceFamily:cdk().stringToCloudFormation(properties.instanceFamily)}):properties}function CfnEC2FleetPerformanceFactorReferenceRequestPropertyFromCloudFormation(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("instanceFamily","InstanceFamily",properties.InstanceFamily!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceFamily):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetCpuPerformanceFactorRequestPropertyValidator(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("references",cdk().listValidator(CfnEC2FleetPerformanceFactorReferenceRequestPropertyValidator))(properties.references)),errors.wrap('supplied properties not correct for "CpuPerformanceFactorRequestProperty"')}function convertCfnEC2FleetCpuPerformanceFactorRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetCpuPerformanceFactorRequestPropertyValidator(properties).assertSuccess(),{References:cdk().listMapper(convertCfnEC2FleetPerformanceFactorReferenceRequestPropertyToCloudFormation)(properties.references)}):properties}function CfnEC2FleetCpuPerformanceFactorRequestPropertyFromCloudFormation(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("references","References",properties.References!=null?cfn_parse().FromCloudFormation.getArray(CfnEC2FleetPerformanceFactorReferenceRequestPropertyFromCloudFormation)(properties.References):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetBaselinePerformanceFactorsRequestPropertyValidator(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("cpu",CfnEC2FleetCpuPerformanceFactorRequestPropertyValidator)(properties.cpu)),errors.wrap('supplied properties not correct for "BaselinePerformanceFactorsRequestProperty"')}function convertCfnEC2FleetBaselinePerformanceFactorsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetBaselinePerformanceFactorsRequestPropertyValidator(properties).assertSuccess(),{Cpu:convertCfnEC2FleetCpuPerformanceFactorRequestPropertyToCloudFormation(properties.cpu)}):properties}function CfnEC2FleetBaselinePerformanceFactorsRequestPropertyFromCloudFormation(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("cpu","Cpu",properties.Cpu!=null?CfnEC2FleetCpuPerformanceFactorRequestPropertyFromCloudFormation(properties.Cpu):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetInstanceRequirementsRequestPropertyValidator(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("acceleratorCount",CfnEC2FleetAcceleratorCountRequestPropertyValidator)(properties.acceleratorCount)),errors.collect(cdk().propertyValidator("acceleratorManufacturers",cdk().listValidator(cdk().validateString))(properties.acceleratorManufacturers)),errors.collect(cdk().propertyValidator("acceleratorNames",cdk().listValidator(cdk().validateString))(properties.acceleratorNames)),errors.collect(cdk().propertyValidator("acceleratorTotalMemoryMiB",CfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyValidator)(properties.acceleratorTotalMemoryMiB)),errors.collect(cdk().propertyValidator("acceleratorTypes",cdk().listValidator(cdk().validateString))(properties.acceleratorTypes)),errors.collect(cdk().propertyValidator("allowedInstanceTypes",cdk().listValidator(cdk().validateString))(properties.allowedInstanceTypes)),errors.collect(cdk().propertyValidator("bareMetal",cdk().validateString)(properties.bareMetal)),errors.collect(cdk().propertyValidator("baselineEbsBandwidthMbps",CfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyValidator)(properties.baselineEbsBandwidthMbps)),errors.collect(cdk().propertyValidator("baselinePerformanceFactors",CfnEC2FleetBaselinePerformanceFactorsRequestPropertyValidator)(properties.baselinePerformanceFactors)),errors.collect(cdk().propertyValidator("burstablePerformance",cdk().validateString)(properties.burstablePerformance)),errors.collect(cdk().propertyValidator("cpuManufacturers",cdk().listValidator(cdk().validateString))(properties.cpuManufacturers)),errors.collect(cdk().propertyValidator("excludedInstanceTypes",cdk().listValidator(cdk().validateString))(properties.excludedInstanceTypes)),errors.collect(cdk().propertyValidator("instanceGenerations",cdk().listValidator(cdk().validateString))(properties.instanceGenerations)),errors.collect(cdk().propertyValidator("localStorage",cdk().validateString)(properties.localStorage)),errors.collect(cdk().propertyValidator("localStorageTypes",cdk().listValidator(cdk().validateString))(properties.localStorageTypes)),errors.collect(cdk().propertyValidator("maxSpotPriceAsPercentageOfOptimalOnDemandPrice",cdk().validateNumber)(properties.maxSpotPriceAsPercentageOfOptimalOnDemandPrice)),errors.collect(cdk().propertyValidator("memoryGiBPerVCpu",CfnEC2FleetMemoryGiBPerVCpuRequestPropertyValidator)(properties.memoryGiBPerVCpu)),errors.collect(cdk().propertyValidator("memoryMiB",CfnEC2FleetMemoryMiBRequestPropertyValidator)(properties.memoryMiB)),errors.collect(cdk().propertyValidator("networkBandwidthGbps",CfnEC2FleetNetworkBandwidthGbpsRequestPropertyValidator)(properties.networkBandwidthGbps)),errors.collect(cdk().propertyValidator("networkInterfaceCount",CfnEC2FleetNetworkInterfaceCountRequestPropertyValidator)(properties.networkInterfaceCount)),errors.collect(cdk().propertyValidator("onDemandMaxPricePercentageOverLowestPrice",cdk().validateNumber)(properties.onDemandMaxPricePercentageOverLowestPrice)),errors.collect(cdk().propertyValidator("requireEncryptionInTransit",cdk().validateBoolean)(properties.requireEncryptionInTransit)),errors.collect(cdk().propertyValidator("requireHibernateSupport",cdk().validateBoolean)(properties.requireHibernateSupport)),errors.collect(cdk().propertyValidator("spotMaxPricePercentageOverLowestPrice",cdk().validateNumber)(properties.spotMaxPricePercentageOverLowestPrice)),errors.collect(cdk().propertyValidator("totalLocalStorageGb",CfnEC2FleetTotalLocalStorageGBRequestPropertyValidator)(properties.totalLocalStorageGb)),errors.collect(cdk().propertyValidator("vCpuCount",CfnEC2FleetVCpuCountRangeRequestPropertyValidator)(properties.vCpuCount)),errors.wrap('supplied properties not correct for "InstanceRequirementsRequestProperty"')}function convertCfnEC2FleetInstanceRequirementsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetInstanceRequirementsRequestPropertyValidator(properties).assertSuccess(),{AcceleratorCount:convertCfnEC2FleetAcceleratorCountRequestPropertyToCloudFormation(properties.acceleratorCount),AcceleratorManufacturers:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorManufacturers),AcceleratorNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorNames),AcceleratorTotalMemoryMiB:convertCfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties.acceleratorTotalMemoryMiB),AcceleratorTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorTypes),AllowedInstanceTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.allowedInstanceTypes),BareMetal:cdk().stringToCloudFormation(properties.bareMetal),BaselineEbsBandwidthMbps:convertCfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties.baselineEbsBandwidthMbps),BaselinePerformanceFactors:convertCfnEC2FleetBaselinePerformanceFactorsRequestPropertyToCloudFormation(properties.baselinePerformanceFactors),BurstablePerformance:cdk().stringToCloudFormation(properties.burstablePerformance),CpuManufacturers:cdk().listMapper(cdk().stringToCloudFormation)(properties.cpuManufacturers),ExcludedInstanceTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.excludedInstanceTypes),InstanceGenerations:cdk().listMapper(cdk().stringToCloudFormation)(properties.instanceGenerations),LocalStorage:cdk().stringToCloudFormation(properties.localStorage),LocalStorageTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.localStorageTypes),MaxSpotPriceAsPercentageOfOptimalOnDemandPrice:cdk().numberToCloudFormation(properties.maxSpotPriceAsPercentageOfOptimalOnDemandPrice),MemoryGiBPerVCpu:convertCfnEC2FleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties.memoryGiBPerVCpu),MemoryMiB:convertCfnEC2FleetMemoryMiBRequestPropertyToCloudFormation(properties.memoryMiB),NetworkBandwidthGbps:convertCfnEC2FleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties.networkBandwidthGbps),NetworkInterfaceCount:convertCfnEC2FleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties.networkInterfaceCount),OnDemandMaxPricePercentageOverLowestPrice:cdk().numberToCloudFormation(properties.onDemandMaxPricePercentageOverLowestPrice),RequireEncryptionInTransit:cdk().booleanToCloudFormation(properties.requireEncryptionInTransit),RequireHibernateSupport:cdk().booleanToCloudFormation(properties.requireHibernateSupport),SpotMaxPricePercentageOverLowestPrice:cdk().numberToCloudFormation(properties.spotMaxPricePercentageOverLowestPrice),TotalLocalStorageGB:convertCfnEC2FleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties.totalLocalStorageGb),VCpuCount:convertCfnEC2FleetVCpuCountRangeRequestPropertyToCloudFormation(properties.vCpuCount)}):properties}function CfnEC2FleetInstanceRequirementsRequestPropertyFromCloudFormation(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("acceleratorCount","AcceleratorCount",properties.AcceleratorCount!=null?CfnEC2FleetAcceleratorCountRequestPropertyFromCloudFormation(properties.AcceleratorCount):void 0),ret.addPropertyResult("acceleratorManufacturers","AcceleratorManufacturers",properties.AcceleratorManufacturers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorManufacturers):void 0),ret.addPropertyResult("acceleratorNames","AcceleratorNames",properties.AcceleratorNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorNames):void 0),ret.addPropertyResult("acceleratorTotalMemoryMiB","AcceleratorTotalMemoryMiB",properties.AcceleratorTotalMemoryMiB!=null?CfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(properties.AcceleratorTotalMemoryMiB):void 0),ret.addPropertyResult("acceleratorTypes","AcceleratorTypes",properties.AcceleratorTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorTypes):void 0),ret.addPropertyResult("allowedInstanceTypes","AllowedInstanceTypes",properties.AllowedInstanceTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AllowedInstanceTypes):void 0),ret.addPropertyResult("bareMetal","BareMetal",properties.BareMetal!=null?cfn_parse().FromCloudFormation.getString(properties.BareMetal):void 0),ret.addPropertyResult("baselineEbsBandwidthMbps","BaselineEbsBandwidthMbps",properties.BaselineEbsBandwidthMbps!=null?CfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties.BaselineEbsBandwidthMbps):void 0),ret.addPropertyResult("baselinePerformanceFactors","BaselinePerformanceFactors",properties.BaselinePerformanceFactors!=null?CfnEC2FleetBaselinePerformanceFactorsRequestPropertyFromCloudFormation(properties.BaselinePerformanceFactors):void 0),ret.addPropertyResult("burstablePerformance","BurstablePerformance",properties.BurstablePerformance!=null?cfn_parse().FromCloudFormation.getString(properties.BurstablePerformance):void 0),ret.addPropertyResult("cpuManufacturers","CpuManufacturers",properties.CpuManufacturers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CpuManufacturers):void 0),ret.addPropertyResult("excludedInstanceTypes","ExcludedInstanceTypes",properties.ExcludedInstanceTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExcludedInstanceTypes):void 0),ret.addPropertyResult("instanceGenerations","InstanceGenerations",properties.InstanceGenerations!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.InstanceGenerations):void 0),ret.addPropertyResult("localStorage","LocalStorage",properties.LocalStorage!=null?cfn_parse().FromCloudFormation.getString(properties.LocalStorage):void 0),ret.addPropertyResult("localStorageTypes","LocalStorageTypes",properties.LocalStorageTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.LocalStorageTypes):void 0),ret.addPropertyResult("maxSpotPriceAsPercentageOfOptimalOnDemandPrice","MaxSpotPriceAsPercentageOfOptimalOnDemandPrice",properties.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice):void 0),ret.addPropertyResult("memoryGiBPerVCpu","MemoryGiBPerVCpu",properties.MemoryGiBPerVCpu!=null?CfnEC2FleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties.MemoryGiBPerVCpu):void 0),ret.addPropertyResult("memoryMiB","MemoryMiB",properties.MemoryMiB!=null?CfnEC2FleetMemoryMiBRequestPropertyFromCloudFormation(properties.MemoryMiB):void 0),ret.addPropertyResult("networkBandwidthGbps","NetworkBandwidthGbps",properties.NetworkBandwidthGbps!=null?CfnEC2FleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties.NetworkBandwidthGbps):void 0),ret.addPropertyResult("networkInterfaceCount","NetworkInterfaceCount",properties.NetworkInterfaceCount!=null?CfnEC2FleetNetworkInterfaceCountRequestPropertyFromCloudFormation(properties.NetworkInterfaceCount):void 0),ret.addPropertyResult("onDemandMaxPricePercentageOverLowestPrice","OnDemandMaxPricePercentageOverLowestPrice",properties.OnDemandMaxPricePercentageOverLowestPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.OnDemandMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("requireEncryptionInTransit","RequireEncryptionInTransit",properties.RequireEncryptionInTransit!=null?cfn_parse().FromCloudFormation.getBoolean(properties.RequireEncryptionInTransit):void 0),ret.addPropertyResult("requireHibernateSupport","RequireHibernateSupport",properties.RequireHibernateSupport!=null?cfn_parse().FromCloudFormation.getBoolean(properties.RequireHibernateSupport):void 0),ret.addPropertyResult("spotMaxPricePercentageOverLowestPrice","SpotMaxPricePercentageOverLowestPrice",properties.SpotMaxPricePercentageOverLowestPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.SpotMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("totalLocalStorageGb","TotalLocalStorageGB",properties.TotalLocalStorageGB!=null?CfnEC2FleetTotalLocalStorageGBRequestPropertyFromCloudFormation(properties.TotalLocalStorageGB):void 0),ret.addPropertyResult("vCpuCount","VCpuCount",properties.VCpuCount!=null?CfnEC2FleetVCpuCountRangeRequestPropertyFromCloudFormation(properties.VCpuCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetInstanceMetadataOptionsRequestPropertyValidator(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("httpEndpoint",cdk().validateString)(properties.httpEndpoint)),errors.collect(cdk().propertyValidator("httpPutResponseHopLimit",cdk().validateNumber)(properties.httpPutResponseHopLimit)),errors.collect(cdk().propertyValidator("httpTokens",cdk().validateString)(properties.httpTokens)),errors.wrap('supplied properties not correct for "InstanceMetadataOptionsRequestProperty"')}function convertCfnEC2FleetInstanceMetadataOptionsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetInstanceMetadataOptionsRequestPropertyValidator(properties).assertSuccess(),{HttpEndpoint:cdk().stringToCloudFormation(properties.httpEndpoint),HttpPutResponseHopLimit:cdk().numberToCloudFormation(properties.httpPutResponseHopLimit),HttpTokens:cdk().stringToCloudFormation(properties.httpTokens)}):properties}function CfnEC2FleetInstanceMetadataOptionsRequestPropertyFromCloudFormation(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("httpEndpoint","HttpEndpoint",properties.HttpEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.HttpEndpoint):void 0),ret.addPropertyResult("httpPutResponseHopLimit","HttpPutResponseHopLimit",properties.HttpPutResponseHopLimit!=null?cfn_parse().FromCloudFormation.getNumber(properties.HttpPutResponseHopLimit):void 0),ret.addPropertyResult("httpTokens","HttpTokens",properties.HttpTokens!=null?cfn_parse().FromCloudFormation.getString(properties.HttpTokens):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetEbsBlockDevicePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.collect(cdk().propertyValidator("iops",cdk().validateNumber)(properties.iops)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("snapshotId",cdk().validateString)(properties.snapshotId)),errors.collect(cdk().propertyValidator("volumeSize",cdk().validateNumber)(properties.volumeSize)),errors.collect(cdk().propertyValidator("volumeType",cdk().validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsBlockDeviceProperty"')}function convertCfnEC2FleetEbsBlockDevicePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetEbsBlockDevicePropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk().booleanToCloudFormation(properties.encrypted),Iops:cdk().numberToCloudFormation(properties.iops),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),SnapshotId:cdk().stringToCloudFormation(properties.snapshotId),VolumeSize:cdk().numberToCloudFormation(properties.volumeSize),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnEC2FleetEbsBlockDevicePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse().FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetBlockDeviceMappingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deviceName",cdk().validateString)(properties.deviceName)),errors.collect(cdk().propertyValidator("ebs",CfnEC2FleetEbsBlockDevicePropertyValidator)(properties.ebs)),errors.collect(cdk().propertyValidator("noDevice",cdk().validateString)(properties.noDevice)),errors.collect(cdk().propertyValidator("virtualName",cdk().validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "BlockDeviceMappingProperty"')}function convertCfnEC2FleetBlockDeviceMappingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetBlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk().stringToCloudFormation(properties.deviceName),Ebs:convertCfnEC2FleetEbsBlockDevicePropertyToCloudFormation(properties.ebs),NoDevice:cdk().stringToCloudFormation(properties.noDevice),VirtualName:cdk().stringToCloudFormation(properties.virtualName)}):properties}function CfnEC2FleetBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",properties.DeviceName!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceName):void 0),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnEC2FleetEbsBlockDevicePropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?cfn_parse().FromCloudFormation.getString(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse().FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetIamInstanceProfileSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "IamInstanceProfileSpecificationProperty"')}function convertCfnEC2FleetIamInstanceProfileSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetIamInstanceProfileSpecificationPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnEC2FleetIamInstanceProfileSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetPrivateIpAddressSpecificationRequestPropertyValidator(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("primary",cdk().validateBoolean)(properties.primary)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddressSpecificationRequestProperty"')}function convertCfnEC2FleetPrivateIpAddressSpecificationRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetPrivateIpAddressSpecificationRequestPropertyValidator(properties).assertSuccess(),{Primary:cdk().booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnEC2FleetPrivateIpAddressSpecificationRequestPropertyFromCloudFormation(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("primary","Primary",properties.Primary!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Primary):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetIpv6AddressRequestPropertyValidator(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("ipv6Address",cdk().validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "Ipv6AddressRequestProperty"')}function convertCfnEC2FleetIpv6AddressRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetIpv6AddressRequestPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk().stringToCloudFormation(properties.ipv6Address)}):properties}function CfnEC2FleetIpv6AddressRequestPropertyFromCloudFormation(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("ipv6Address","Ipv6Address",properties.Ipv6Address!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6Address):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetNetworkInterfaceSpecificationRequestPropertyValidator(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("associatePublicIpAddress",cdk().validateBoolean)(properties.associatePublicIpAddress)),errors.collect(cdk().propertyValidator("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("deviceIndex",cdk().validateNumber)(properties.deviceIndex)),errors.collect(cdk().propertyValidator("groups",cdk().listValidator(cdk().validateString))(properties.groups)),errors.collect(cdk().propertyValidator("interfaceType",cdk().validateString)(properties.interfaceType)),errors.collect(cdk().propertyValidator("ipv6AddressCount",cdk().validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk().propertyValidator("ipv6Addresses",cdk().listValidator(CfnEC2FleetIpv6AddressRequestPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk().propertyValidator("networkCardIndex",cdk().validateNumber)(properties.networkCardIndex)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.collect(cdk().propertyValidator("privateIpAddresses",cdk().listValidator(CfnEC2FleetPrivateIpAddressSpecificationRequestPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk().propertyValidator("secondaryPrivateIpAddressCount",cdk().validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "NetworkInterfaceSpecificationRequestProperty"')}function convertCfnEC2FleetNetworkInterfaceSpecificationRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetNetworkInterfaceSpecificationRequestPropertyValidator(properties).assertSuccess(),{AssociatePublicIpAddress:cdk().booleanToCloudFormation(properties.associatePublicIpAddress),DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),Description:cdk().stringToCloudFormation(properties.description),DeviceIndex:cdk().numberToCloudFormation(properties.deviceIndex),Groups:cdk().listMapper(cdk().stringToCloudFormation)(properties.groups),InterfaceType:cdk().stringToCloudFormation(properties.interfaceType),Ipv6AddressCount:cdk().numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk().listMapper(convertCfnEC2FleetIpv6AddressRequestPropertyToCloudFormation)(properties.ipv6Addresses),NetworkCardIndex:cdk().numberToCloudFormation(properties.networkCardIndex),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress),PrivateIpAddresses:cdk().listMapper(convertCfnEC2FleetPrivateIpAddressSpecificationRequestPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk().numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnEC2FleetNetworkInterfaceSpecificationRequestPropertyFromCloudFormation(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("associatePublicIpAddress","AssociatePublicIpAddress",properties.AssociatePublicIpAddress!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AssociatePublicIpAddress):void 0),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceIndex","DeviceIndex",properties.DeviceIndex!=null?cfn_parse().FromCloudFormation.getNumber(properties.DeviceIndex):void 0),ret.addPropertyResult("groups","Groups",properties.Groups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Groups):void 0),ret.addPropertyResult("interfaceType","InterfaceType",properties.InterfaceType!=null?cfn_parse().FromCloudFormation.getString(properties.InterfaceType):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse().FromCloudFormation.getArray(CfnEC2FleetIpv6AddressRequestPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("networkCardIndex","NetworkCardIndex",properties.NetworkCardIndex!=null?cfn_parse().FromCloudFormation.getNumber(properties.NetworkCardIndex):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse().FromCloudFormation.getArray(CfnEC2FleetPrivateIpAddressSpecificationRequestPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyValidator(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("availabilityZoneId",cdk().validateString)(properties.availabilityZoneId)),errors.collect(cdk().propertyValidator("blockDeviceMappings",cdk().listValidator(CfnEC2FleetBlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk().propertyValidator("iamInstanceProfile",CfnEC2FleetIamInstanceProfileSpecificationPropertyValidator)(properties.iamInstanceProfile)),errors.collect(cdk().propertyValidator("instanceRequirements",CfnEC2FleetInstanceRequirementsRequestPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("keyName",cdk().validateString)(properties.keyName)),errors.collect(cdk().propertyValidator("maxPrice",cdk().validateString)(properties.maxPrice)),errors.collect(cdk().propertyValidator("metadataOptions",CfnEC2FleetInstanceMetadataOptionsRequestPropertyValidator)(properties.metadataOptions)),errors.collect(cdk().propertyValidator("networkInterfaces",cdk().listValidator(CfnEC2FleetNetworkInterfaceSpecificationRequestPropertyValidator))(properties.networkInterfaces)),errors.collect(cdk().propertyValidator("placement",CfnEC2FleetPlacementPropertyValidator)(properties.placement)),errors.collect(cdk().propertyValidator("priority",cdk().validateNumber)(properties.priority)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.collect(cdk().propertyValidator("weightedCapacity",cdk().validateNumber)(properties.weightedCapacity)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateOverridesRequestProperty"')}function convertCfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk().stringToCloudFormation(properties.availabilityZoneId),BlockDeviceMappings:cdk().listMapper(convertCfnEC2FleetBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),IamInstanceProfile:convertCfnEC2FleetIamInstanceProfileSpecificationPropertyToCloudFormation(properties.iamInstanceProfile),InstanceRequirements:convertCfnEC2FleetInstanceRequirementsRequestPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk().stringToCloudFormation(properties.instanceType),KeyName:cdk().stringToCloudFormation(properties.keyName),MaxPrice:cdk().stringToCloudFormation(properties.maxPrice),MetadataOptions:convertCfnEC2FleetInstanceMetadataOptionsRequestPropertyToCloudFormation(properties.metadataOptions),NetworkInterfaces:cdk().listMapper(convertCfnEC2FleetNetworkInterfaceSpecificationRequestPropertyToCloudFormation)(properties.networkInterfaces),Placement:convertCfnEC2FleetPlacementPropertyToCloudFormation(properties.placement),Priority:cdk().numberToCloudFormation(properties.priority),SubnetId:cdk().stringToCloudFormation(properties.subnetId),WeightedCapacity:cdk().numberToCloudFormation(properties.weightedCapacity)}):properties}function CfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyFromCloudFormation(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("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse().FromCloudFormation.getArray(CfnEC2FleetBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("iamInstanceProfile","IamInstanceProfile",properties.IamInstanceProfile!=null?CfnEC2FleetIamInstanceProfileSpecificationPropertyFromCloudFormation(properties.IamInstanceProfile):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnEC2FleetInstanceRequirementsRequestPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse().FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("maxPrice","MaxPrice",properties.MaxPrice!=null?cfn_parse().FromCloudFormation.getString(properties.MaxPrice):void 0),ret.addPropertyResult("metadataOptions","MetadataOptions",properties.MetadataOptions!=null?CfnEC2FleetInstanceMetadataOptionsRequestPropertyFromCloudFormation(properties.MetadataOptions):void 0),ret.addPropertyResult("networkInterfaces","NetworkInterfaces",properties.NetworkInterfaces!=null?cfn_parse().FromCloudFormation.getArray(CfnEC2FleetNetworkInterfaceSpecificationRequestPropertyFromCloudFormation)(properties.NetworkInterfaces):void 0),ret.addPropertyResult("placement","Placement",properties.Placement!=null?CfnEC2FleetPlacementPropertyFromCloudFormation(properties.Placement):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse().FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("weightedCapacity","WeightedCapacity",properties.WeightedCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.WeightedCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetFleetLaunchTemplateConfigRequestPropertyValidator(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("launchTemplateSpecification",CfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyValidator)(properties.launchTemplateSpecification)),errors.collect(cdk().propertyValidator("overrides",cdk().listValidator(CfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyValidator))(properties.overrides)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateConfigRequestProperty"')}function convertCfnEC2FleetFleetLaunchTemplateConfigRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetFleetLaunchTemplateConfigRequestPropertyValidator(properties).assertSuccess(),{LaunchTemplateSpecification:convertCfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyToCloudFormation(properties.launchTemplateSpecification),Overrides:cdk().listMapper(convertCfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyToCloudFormation)(properties.overrides)}):properties}function CfnEC2FleetFleetLaunchTemplateConfigRequestPropertyFromCloudFormation(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("launchTemplateSpecification","LaunchTemplateSpecification",properties.LaunchTemplateSpecification!=null?CfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyFromCloudFormation(properties.LaunchTemplateSpecification):void 0),ret.addPropertyResult("overrides","Overrides",properties.Overrides!=null?cfn_parse().FromCloudFormation.getArray(CfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyFromCloudFormation)(properties.Overrides):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetReservedCapacityOptionsRequestPropertyValidator(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("reservationTypes",cdk().listValidator(cdk().validateString))(properties.reservationTypes)),errors.wrap('supplied properties not correct for "ReservedCapacityOptionsRequestProperty"')}function convertCfnEC2FleetReservedCapacityOptionsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetReservedCapacityOptionsRequestPropertyValidator(properties).assertSuccess(),{ReservationTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.reservationTypes)}):properties}function CfnEC2FleetReservedCapacityOptionsRequestPropertyFromCloudFormation(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("reservationTypes","ReservationTypes",properties.ReservationTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ReservationTypes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2FleetPropsValidator(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("context",cdk().validateString)(properties.context)),errors.collect(cdk().propertyValidator("excessCapacityTerminationPolicy",cdk().validateString)(properties.excessCapacityTerminationPolicy)),errors.collect(cdk().propertyValidator("launchTemplateConfigs",cdk().requiredValidator)(properties.launchTemplateConfigs)),errors.collect(cdk().propertyValidator("launchTemplateConfigs",cdk().listValidator(CfnEC2FleetFleetLaunchTemplateConfigRequestPropertyValidator))(properties.launchTemplateConfigs)),errors.collect(cdk().propertyValidator("onDemandOptions",CfnEC2FleetOnDemandOptionsRequestPropertyValidator)(properties.onDemandOptions)),errors.collect(cdk().propertyValidator("replaceUnhealthyInstances",cdk().validateBoolean)(properties.replaceUnhealthyInstances)),errors.collect(cdk().propertyValidator("reservedCapacityOptions",CfnEC2FleetReservedCapacityOptionsRequestPropertyValidator)(properties.reservedCapacityOptions)),errors.collect(cdk().propertyValidator("spotOptions",CfnEC2FleetSpotOptionsRequestPropertyValidator)(properties.spotOptions)),errors.collect(cdk().propertyValidator("tagSpecifications",cdk().listValidator(CfnEC2FleetTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk().propertyValidator("targetCapacitySpecification",cdk().requiredValidator)(properties.targetCapacitySpecification)),errors.collect(cdk().propertyValidator("targetCapacitySpecification",CfnEC2FleetTargetCapacitySpecificationRequestPropertyValidator)(properties.targetCapacitySpecification)),errors.collect(cdk().propertyValidator("terminateInstancesWithExpiration",cdk().validateBoolean)(properties.terminateInstancesWithExpiration)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.collect(cdk().propertyValidator("validFrom",cdk().validateString)(properties.validFrom)),errors.collect(cdk().propertyValidator("validUntil",cdk().validateString)(properties.validUntil)),errors.wrap('supplied properties not correct for "CfnEC2FleetProps"')}function convertCfnEC2FleetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEC2FleetPropsValidator(properties).assertSuccess(),{Context:cdk().stringToCloudFormation(properties.context),ExcessCapacityTerminationPolicy:cdk().stringToCloudFormation(properties.excessCapacityTerminationPolicy),LaunchTemplateConfigs:cdk().listMapper(convertCfnEC2FleetFleetLaunchTemplateConfigRequestPropertyToCloudFormation)(properties.launchTemplateConfigs),OnDemandOptions:convertCfnEC2FleetOnDemandOptionsRequestPropertyToCloudFormation(properties.onDemandOptions),ReplaceUnhealthyInstances:cdk().booleanToCloudFormation(properties.replaceUnhealthyInstances),ReservedCapacityOptions:convertCfnEC2FleetReservedCapacityOptionsRequestPropertyToCloudFormation(properties.reservedCapacityOptions),SpotOptions:convertCfnEC2FleetSpotOptionsRequestPropertyToCloudFormation(properties.spotOptions),TagSpecifications:cdk().listMapper(convertCfnEC2FleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),TargetCapacitySpecification:convertCfnEC2FleetTargetCapacitySpecificationRequestPropertyToCloudFormation(properties.targetCapacitySpecification),TerminateInstancesWithExpiration:cdk().booleanToCloudFormation(properties.terminateInstancesWithExpiration),Type:cdk().stringToCloudFormation(properties.type),ValidFrom:cdk().stringToCloudFormation(properties.validFrom),ValidUntil:cdk().stringToCloudFormation(properties.validUntil)}):properties}function CfnEC2FleetPropsFromCloudFormation(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("context","Context",properties.Context!=null?cfn_parse().FromCloudFormation.getString(properties.Context):void 0),ret.addPropertyResult("excessCapacityTerminationPolicy","ExcessCapacityTerminationPolicy",properties.ExcessCapacityTerminationPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.ExcessCapacityTerminationPolicy):void 0),ret.addPropertyResult("launchTemplateConfigs","LaunchTemplateConfigs",properties.LaunchTemplateConfigs!=null?cfn_parse().FromCloudFormation.getArray(CfnEC2FleetFleetLaunchTemplateConfigRequestPropertyFromCloudFormation)(properties.LaunchTemplateConfigs):void 0),ret.addPropertyResult("onDemandOptions","OnDemandOptions",properties.OnDemandOptions!=null?CfnEC2FleetOnDemandOptionsRequestPropertyFromCloudFormation(properties.OnDemandOptions):void 0),ret.addPropertyResult("replaceUnhealthyInstances","ReplaceUnhealthyInstances",properties.ReplaceUnhealthyInstances!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ReplaceUnhealthyInstances):void 0),ret.addPropertyResult("reservedCapacityOptions","ReservedCapacityOptions",properties.ReservedCapacityOptions!=null?CfnEC2FleetReservedCapacityOptionsRequestPropertyFromCloudFormation(properties.ReservedCapacityOptions):void 0),ret.addPropertyResult("spotOptions","SpotOptions",properties.SpotOptions!=null?CfnEC2FleetSpotOptionsRequestPropertyFromCloudFormation(properties.SpotOptions):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnEC2FleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("targetCapacitySpecification","TargetCapacitySpecification",properties.TargetCapacitySpecification!=null?CfnEC2FleetTargetCapacitySpecificationRequestPropertyFromCloudFormation(properties.TargetCapacitySpecification):void 0),ret.addPropertyResult("terminateInstancesWithExpiration","TerminateInstancesWithExpiration",properties.TerminateInstancesWithExpiration!=null?cfn_parse().FromCloudFormation.getBoolean(properties.TerminateInstancesWithExpiration):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("validFrom","ValidFrom",properties.ValidFrom!=null?cfn_parse().FromCloudFormation.getString(properties.ValidFrom):void 0),ret.addPropertyResult("validUntil","ValidUntil",properties.ValidUntil!=null?cfn_parse().FromCloudFormation.getString(properties.ValidUntil):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEIP extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnEIP",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::EIP";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEIPPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnEIP(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 isCfnEIP(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnEIP.CFN_RESOURCE_TYPE_NAME}static arnForEIP(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IEIPRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForEIP),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:elastic-ip/${AllocationId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,AllocationId:resource.eipRef.allocationId})}_address;_domain;_instanceId;_ipamPoolId;_networkBorderGroup;_publicIpv4Pool;tags;_tagsRaw;_transferAddress;cfnPropertyNames={address:"Address",domain:"Domain",instanceId:"InstanceId",ipamPoolId:"IpamPoolId",networkBorderGroup:"NetworkBorderGroup",publicIpv4Pool:"PublicIpv4Pool",tags:"Tags",transferAddress:"TransferAddress"};constructor(scope,id,props={}){super(scope,id,{type:CfnEIP.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnEIPProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEIP),error}this._address=props.address,this._domain=props.domain,this._instanceId=cdk().getRefProperty(props.instanceId?.instanceRef,"instanceId")??cdk().ensureStringOrUndefined(props.instanceId,"instanceId","ec2.IInstanceRef | string"),this._ipamPoolId=props.ipamPoolId,this._networkBorderGroup=props.networkBorderGroup,this._publicIpv4Pool=props.publicIpv4Pool,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::EIP",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transferAddress=props.transferAddress}get eipRef(){return{publicIp:this.ref,allocationId:this.attrAllocationId}}get address(){return this._address}set address(value){cdk().traceProperty(this.node,"Address"),this._address=value}get domain(){return this._domain}set domain(value){cdk().traceProperty(this.node,"Domain"),this._domain=value}get instanceId(){return this._instanceId}set instanceId(value){cdk().traceProperty(this.node,"InstanceId"),this._instanceId=value}get ipamPoolId(){return this._ipamPoolId}set ipamPoolId(value){cdk().traceProperty(this.node,"IpamPoolId"),this._ipamPoolId=value}get networkBorderGroup(){return this._networkBorderGroup}set networkBorderGroup(value){cdk().traceProperty(this.node,"NetworkBorderGroup"),this._networkBorderGroup=value}get publicIpv4Pool(){return this._publicIpv4Pool}set publicIpv4Pool(value){cdk().traceProperty(this.node,"PublicIpv4Pool"),this._publicIpv4Pool=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transferAddress(){return this._transferAddress}set transferAddress(value){cdk().traceProperty(this.node,"TransferAddress"),this._transferAddress=value}get attrAllocationId(){return cdk().Token.asString(this.getAtt("AllocationId",cdk().ResolutionTypeHint.STRING))}get attrPublicIp(){return cdk().Token.asString(this.getAtt("PublicIp",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{address:this._address,domain:this._domain,instanceId:this._instanceId,ipamPoolId:this._ipamPoolId,networkBorderGroup:this._networkBorderGroup,publicIpv4Pool:this._publicIpv4Pool,tags:this.tags.renderTags(),transferAddress:this._transferAddress}}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",CfnEIP.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnEIPPropsToCloudFormation(props)}}exports.CfnEIP=CfnEIP;function CfnEIPPropsValidator(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("address",cdk().validateString)(properties.address)),errors.collect(cdk().propertyValidator("domain",cdk().validateString)(properties.domain)),errors.collect(cdk().propertyValidator("instanceId",cdk().validateString)(properties.instanceId)),errors.collect(cdk().propertyValidator("ipamPoolId",cdk().validateString)(properties.ipamPoolId)),errors.collect(cdk().propertyValidator("networkBorderGroup",cdk().validateString)(properties.networkBorderGroup)),errors.collect(cdk().propertyValidator("publicIpv4Pool",cdk().validateString)(properties.publicIpv4Pool)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transferAddress",cdk().validateString)(properties.transferAddress)),errors.wrap('supplied properties not correct for "CfnEIPProps"')}function convertCfnEIPPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEIPPropsValidator(properties).assertSuccess(),{Address:cdk().stringToCloudFormation(properties.address),Domain:cdk().stringToCloudFormation(properties.domain),InstanceId:cdk().stringToCloudFormation(properties.instanceId),IpamPoolId:cdk().stringToCloudFormation(properties.ipamPoolId),NetworkBorderGroup:cdk().stringToCloudFormation(properties.networkBorderGroup),PublicIpv4Pool:cdk().stringToCloudFormation(properties.publicIpv4Pool),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransferAddress:cdk().stringToCloudFormation(properties.transferAddress)}):properties}function CfnEIPPropsFromCloudFormation(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("address","Address",properties.Address!=null?cfn_parse().FromCloudFormation.getString(properties.Address):void 0),ret.addPropertyResult("domain","Domain",properties.Domain!=null?cfn_parse().FromCloudFormation.getString(properties.Domain):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("ipamPoolId","IpamPoolId",properties.IpamPoolId!=null?cfn_parse().FromCloudFormation.getString(properties.IpamPoolId):void 0),ret.addPropertyResult("networkBorderGroup","NetworkBorderGroup",properties.NetworkBorderGroup!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkBorderGroup):void 0),ret.addPropertyResult("publicIpv4Pool","PublicIpv4Pool",properties.PublicIpv4Pool!=null?cfn_parse().FromCloudFormation.getString(properties.PublicIpv4Pool):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transferAddress","TransferAddress",properties.TransferAddress!=null?cfn_parse().FromCloudFormation.getString(properties.TransferAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEIPAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnEIPAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::EIPAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEIPAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnEIPAssociation(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 isCfnEIPAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnEIPAssociation.CFN_RESOURCE_TYPE_NAME}_allocationId;_eip;_instanceId;_networkInterfaceId;_privateIpAddress;cfnPropertyNames={allocationId:"AllocationId",eip:"EIP",instanceId:"InstanceId",networkInterfaceId:"NetworkInterfaceId",privateIpAddress:"PrivateIpAddress"};constructor(scope,id,props={}){super(scope,id,{type:CfnEIPAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnEIPAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEIPAssociation),error}this._allocationId=props.allocationId,this._eip=cdk().getRefProperty(props.eip?.eipRef,"publicIp")??cdk().getRefProperty(props.eip?.eipRef,"allocationId")??cdk().ensureStringOrUndefined(props.eip,"eip","ec2.IEIPRef | string"),this._instanceId=cdk().getRefProperty(props.instanceId?.instanceRef,"instanceId")??cdk().ensureStringOrUndefined(props.instanceId,"instanceId","ec2.IInstanceRef | string"),this._networkInterfaceId=cdk().getRefProperty(props.networkInterfaceId?.networkInterfaceRef,"networkInterfaceId")??cdk().ensureStringOrUndefined(props.networkInterfaceId,"networkInterfaceId","ec2.INetworkInterfaceRef | string"),this._privateIpAddress=props.privateIpAddress}get eipAssociationRef(){return{eipAssociationId:this.ref}}get allocationId(){return this._allocationId}set allocationId(value){cdk().traceProperty(this.node,"AllocationId"),this._allocationId=value}get eip(){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_ec2.CfnEIPAssociation#eip","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"eip").get),error}return this._eip}set eip(value){try{jsiiDeprecationWarnings().print("aws-cdk-lib.aws_ec2.CfnEIPAssociation#eip","this property has been deprecated")}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,jsiiDeprecationWarnings().getPropertyDescriptor(this,"eip").set),error}cdk().traceProperty(this.node,"EIP"),this._eip=value}get instanceId(){return this._instanceId}set instanceId(value){cdk().traceProperty(this.node,"InstanceId"),this._instanceId=value}get networkInterfaceId(){return this._networkInterfaceId}set networkInterfaceId(value){cdk().traceProperty(this.node,"NetworkInterfaceId"),this._networkInterfaceId=value}get privateIpAddress(){return this._privateIpAddress}set privateIpAddress(value){cdk().traceProperty(this.node,"PrivateIpAddress"),this._privateIpAddress=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{allocationId:this._allocationId,eip:this._eip,instanceId:this._instanceId,networkInterfaceId:this._networkInterfaceId,privateIpAddress:this._privateIpAddress}}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",CfnEIPAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnEIPAssociationPropsToCloudFormation(props)}}exports.CfnEIPAssociation=CfnEIPAssociation;function CfnEIPAssociationPropsValidator(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("allocationId",cdk().validateString)(properties.allocationId)),errors.collect(cdk().propertyValidator("eip",cdk().validateString)(properties.eip)),errors.collect(cdk().propertyValidator("instanceId",cdk().validateString)(properties.instanceId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "CfnEIPAssociationProps"')}function convertCfnEIPAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEIPAssociationPropsValidator(properties).assertSuccess(),{AllocationId:cdk().stringToCloudFormation(properties.allocationId),EIP:cdk().stringToCloudFormation(properties.eip),InstanceId:cdk().stringToCloudFormation(properties.instanceId),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnEIPAssociationPropsFromCloudFormation(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("allocationId","AllocationId",properties.AllocationId!=null?cfn_parse().FromCloudFormation.getString(properties.AllocationId):void 0),ret.addPropertyResult("eip","EIP",properties.EIP!=null?cfn_parse().FromCloudFormation.getString(properties.EIP):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEgressOnlyInternetGateway extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnEgressOnlyInternetGateway",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::EgressOnlyInternetGateway";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEgressOnlyInternetGatewayPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnEgressOnlyInternetGateway(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 isCfnEgressOnlyInternetGateway(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnEgressOnlyInternetGateway.CFN_RESOURCE_TYPE_NAME}static fromEgressOnlyInternetGatewayId(scope,id,egressOnlyInternetGatewayId){class Import extends cdk().Resource{egressOnlyInternetGatewayRef;constructor(scope2,id2,egressOnlyInternetGatewayId2){super(scope2,id2),this.egressOnlyInternetGatewayRef={egressOnlyInternetGatewayId:egressOnlyInternetGatewayId2}}}return new Import(scope,id,egressOnlyInternetGatewayId)}static arnForEgressOnlyInternetGateway(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IEgressOnlyInternetGatewayRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForEgressOnlyInternetGateway),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:egress-only-internet-gateway/${EgressOnlyInternetGatewayId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,EgressOnlyInternetGatewayId:resource.egressOnlyInternetGatewayRef.egressOnlyInternetGatewayId})}cdkTagManager;_tags;_vpcId;cfnPropertyNames={tags:"Tags",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnEgressOnlyInternetGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnEgressOnlyInternetGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEgressOnlyInternetGateway),error}cdk().requireProperty(props,"vpcId",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::EgressOnlyInternetGateway",void 0,{tagPropertyName:"tags"}),this._tags=props.tags,this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get egressOnlyInternetGatewayRef(){return{egressOnlyInternetGatewayId:this.ref}}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),vpcId:this._vpcId}}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",CfnEgressOnlyInternetGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnEgressOnlyInternetGatewayPropsToCloudFormation(props)}}exports.CfnEgressOnlyInternetGateway=CfnEgressOnlyInternetGateway;function CfnEgressOnlyInternetGatewayPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnEgressOnlyInternetGatewayProps"')}function convertCfnEgressOnlyInternetGatewayPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEgressOnlyInternetGatewayPropsValidator(properties).assertSuccess(),{Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnEgressOnlyInternetGatewayPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEnclaveCertificateIamRoleAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnEnclaveCertificateIamRoleAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::EnclaveCertificateIamRoleAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEnclaveCertificateIamRoleAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnEnclaveCertificateIamRoleAssociation(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 isCfnEnclaveCertificateIamRoleAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnEnclaveCertificateIamRoleAssociation.CFN_RESOURCE_TYPE_NAME}_certificateArn;_roleArn;cfnPropertyNames={certificateArn:"CertificateArn",roleArn:"RoleArn"};constructor(scope,id,props){super(scope,id,{type:CfnEnclaveCertificateIamRoleAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnEnclaveCertificateIamRoleAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEnclaveCertificateIamRoleAssociation),error}cdk().requireProperty(props,"certificateArn",this),cdk().requireProperty(props,"roleArn",this),this._certificateArn=props.certificateArn,this._roleArn=props.roleArn}get enclaveCertificateIamRoleAssociationRef(){return{certificateArn:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),roleArn:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get certificateArn(){return this._certificateArn}set certificateArn(value){cdk().traceProperty(this.node,"CertificateArn"),this._certificateArn=value}get roleArn(){return this._roleArn}set roleArn(value){cdk().traceProperty(this.node,"RoleArn"),this._roleArn=value}get attrCertificateS3BucketName(){return cdk().Token.asString(this.getAtt("CertificateS3BucketName",cdk().ResolutionTypeHint.STRING))}get attrCertificateS3ObjectKey(){return cdk().Token.asString(this.getAtt("CertificateS3ObjectKey",cdk().ResolutionTypeHint.STRING))}get attrEncryptionKmsKeyId(){return cdk().Token.asString(this.getAtt("EncryptionKmsKeyId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{certificateArn:this._certificateArn,roleArn:this._roleArn}}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",CfnEnclaveCertificateIamRoleAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnEnclaveCertificateIamRoleAssociationPropsToCloudFormation(props)}}exports.CfnEnclaveCertificateIamRoleAssociation=CfnEnclaveCertificateIamRoleAssociation;function CfnEnclaveCertificateIamRoleAssociationPropsValidator(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("certificateArn",cdk().requiredValidator)(properties.certificateArn)),errors.collect(cdk().propertyValidator("certificateArn",cdk().validateString)(properties.certificateArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().requiredValidator)(properties.roleArn)),errors.collect(cdk().propertyValidator("roleArn",cdk().validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "CfnEnclaveCertificateIamRoleAssociationProps"')}function convertCfnEnclaveCertificateIamRoleAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEnclaveCertificateIamRoleAssociationPropsValidator(properties).assertSuccess(),{CertificateArn:cdk().stringToCloudFormation(properties.certificateArn),RoleArn:cdk().stringToCloudFormation(properties.roleArn)}):properties}function CfnEnclaveCertificateIamRoleAssociationPropsFromCloudFormation(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("certificateArn","CertificateArn",properties.CertificateArn!=null?cfn_parse().FromCloudFormation.getString(properties.CertificateArn):void 0),ret.addPropertyResult("roleArn","RoleArn",properties.RoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.RoleArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnFlowLog extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnFlowLog",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::FlowLog";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFlowLogPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnFlowLog(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 isCfnFlowLog(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnFlowLog.CFN_RESOURCE_TYPE_NAME}static fromFlowLogId(scope,id,flowLogId){class Import extends cdk().Resource{flowLogRef;constructor(scope2,id2,flowLogId2){super(scope2,id2),this.flowLogRef={flowLogId:flowLogId2}}}return new Import(scope,id,flowLogId)}static arnForFlowLog(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IFlowLogRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForFlowLog),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:vpc-flow-log/${FlowLogId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,FlowLogId:resource.flowLogRef.flowLogId})}_deliverCrossAccountRole;_deliverLogsPermissionArn;_destinationOptions;_logDestination;_logDestinationType;_logFormat;_logGroupName;_maxAggregationInterval;_resourceId;_resourceType;tags;_tagsRaw;_trafficType;cfnPropertyNames={deliverCrossAccountRole:"DeliverCrossAccountRole",deliverLogsPermissionArn:"DeliverLogsPermissionArn",destinationOptions:"DestinationOptions",logDestination:"LogDestination",logDestinationType:"LogDestinationType",logFormat:"LogFormat",logGroupName:"LogGroupName",maxAggregationInterval:"MaxAggregationInterval",resourceId:"ResourceId",resourceType:"ResourceType",tags:"Tags",trafficType:"TrafficType"};constructor(scope,id,props){super(scope,id,{type:CfnFlowLog.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnFlowLogProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFlowLog),error}cdk().requireProperty(props,"resourceId",this),cdk().requireProperty(props,"resourceType",this),this._deliverCrossAccountRole=props.deliverCrossAccountRole,this._deliverLogsPermissionArn=cdk().getRefProperty(props.deliverLogsPermissionArn?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(props.deliverLogsPermissionArn,"deliverLogsPermissionArn","iam.IRoleRef | string"),this._destinationOptions=props.destinationOptions,this._logDestination=cdk().getRefProperty(props.logDestination?.bucketRef,"bucketArn")??cdk().getRefProperty(props.logDestination?.logGroupRef,"logGroupArn")??cdk().ensureStringOrUndefined(props.logDestination,"logDestination","s3.IBucketRef | logs.ILogGroupRef | string"),this._logDestinationType=props.logDestinationType,this._logFormat=props.logFormat,this._logGroupName=cdk().getRefProperty(props.logGroupName?.logGroupRef,"logGroupName")??cdk().ensureStringOrUndefined(props.logGroupName,"logGroupName","logs.ILogGroupRef | string"),this._maxAggregationInterval=props.maxAggregationInterval,this._resourceId=cdk().getRefProperty(props.resourceId?.vpcRef,"vpcId")??cdk().getRefProperty(props.resourceId?.subnetRef,"subnetId")??cdk().getRefProperty(props.resourceId?.transitGatewayRef,"transitGatewayId")??cdk().ensureStringOrUndefined(props.resourceId,"resourceId","ec2.IVPCRef | ec2.ISubnetRef | ec2.ITransitGatewayRef | string"),this._resourceType=props.resourceType,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::FlowLog",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._trafficType=props.trafficType}get flowLogRef(){return{flowLogId:this.ref}}get deliverCrossAccountRole(){return this._deliverCrossAccountRole}set deliverCrossAccountRole(value){cdk().traceProperty(this.node,"DeliverCrossAccountRole"),this._deliverCrossAccountRole=value}get deliverLogsPermissionArn(){return this._deliverLogsPermissionArn}set deliverLogsPermissionArn(value){cdk().traceProperty(this.node,"DeliverLogsPermissionArn"),this._deliverLogsPermissionArn=value}get destinationOptions(){return this._destinationOptions}set destinationOptions(value){cdk().traceProperty(this.node,"DestinationOptions"),this._destinationOptions=value}get logDestination(){return this._logDestination}set logDestination(value){cdk().traceProperty(this.node,"LogDestination"),this._logDestination=value}get logDestinationType(){return this._logDestinationType}set logDestinationType(value){cdk().traceProperty(this.node,"LogDestinationType"),this._logDestinationType=value}get logFormat(){return this._logFormat}set logFormat(value){cdk().traceProperty(this.node,"LogFormat"),this._logFormat=value}get logGroupName(){return this._logGroupName}set logGroupName(value){cdk().traceProperty(this.node,"LogGroupName"),this._logGroupName=value}get maxAggregationInterval(){return this._maxAggregationInterval}set maxAggregationInterval(value){cdk().traceProperty(this.node,"MaxAggregationInterval"),this._maxAggregationInterval=value}get resourceId(){return this._resourceId}set resourceId(value){cdk().traceProperty(this.node,"ResourceId"),this._resourceId=value}get resourceType(){return this._resourceType}set resourceType(value){cdk().traceProperty(this.node,"ResourceType"),this._resourceType=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get trafficType(){return this._trafficType}set trafficType(value){cdk().traceProperty(this.node,"TrafficType"),this._trafficType=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{deliverCrossAccountRole:this._deliverCrossAccountRole,deliverLogsPermissionArn:this._deliverLogsPermissionArn,destinationOptions:this._destinationOptions,logDestination:this._logDestination,logDestinationType:this._logDestinationType,logFormat:this._logFormat,logGroupName:this._logGroupName,maxAggregationInterval:this._maxAggregationInterval,resourceId:this._resourceId,resourceType:this._resourceType,tags:this.tags.renderTags(),trafficType:this._trafficType}}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",CfnFlowLog.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnFlowLogPropsToCloudFormation(props)}}exports.CfnFlowLog=CfnFlowLog;function CfnFlowLogDestinationOptionsPropertyValidator(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("fileFormat",cdk().requiredValidator)(properties.fileFormat)),errors.collect(cdk().propertyValidator("fileFormat",cdk().validateString)(properties.fileFormat)),errors.collect(cdk().propertyValidator("hiveCompatiblePartitions",cdk().requiredValidator)(properties.hiveCompatiblePartitions)),errors.collect(cdk().propertyValidator("hiveCompatiblePartitions",cdk().validateBoolean)(properties.hiveCompatiblePartitions)),errors.collect(cdk().propertyValidator("perHourPartition",cdk().requiredValidator)(properties.perHourPartition)),errors.collect(cdk().propertyValidator("perHourPartition",cdk().validateBoolean)(properties.perHourPartition)),errors.wrap('supplied properties not correct for "DestinationOptionsProperty"')}function convertCfnFlowLogDestinationOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowLogDestinationOptionsPropertyValidator(properties).assertSuccess(),{FileFormat:cdk().stringToCloudFormation(properties.fileFormat),HiveCompatiblePartitions:cdk().booleanToCloudFormation(properties.hiveCompatiblePartitions),PerHourPartition:cdk().booleanToCloudFormation(properties.perHourPartition)}):properties}function CfnFlowLogDestinationOptionsPropertyFromCloudFormation(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("fileFormat","FileFormat",properties.FileFormat!=null?cfn_parse().FromCloudFormation.getString(properties.FileFormat):void 0),ret.addPropertyResult("hiveCompatiblePartitions","HiveCompatiblePartitions",properties.HiveCompatiblePartitions!=null?cfn_parse().FromCloudFormation.getBoolean(properties.HiveCompatiblePartitions):void 0),ret.addPropertyResult("perHourPartition","PerHourPartition",properties.PerHourPartition!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PerHourPartition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnFlowLogPropsValidator(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("deliverCrossAccountRole",cdk().validateString)(properties.deliverCrossAccountRole)),errors.collect(cdk().propertyValidator("deliverLogsPermissionArn",cdk().validateString)(properties.deliverLogsPermissionArn)),errors.collect(cdk().propertyValidator("destinationOptions",cdk().validateObject)(properties.destinationOptions)),errors.collect(cdk().propertyValidator("logDestination",cdk().validateString)(properties.logDestination)),errors.collect(cdk().propertyValidator("logDestinationType",cdk().validateString)(properties.logDestinationType)),errors.collect(cdk().propertyValidator("logFormat",cdk().validateString)(properties.logFormat)),errors.collect(cdk().propertyValidator("logGroupName",cdk().validateString)(properties.logGroupName)),errors.collect(cdk().propertyValidator("maxAggregationInterval",cdk().validateNumber)(properties.maxAggregationInterval)),errors.collect(cdk().propertyValidator("resourceId",cdk().requiredValidator)(properties.resourceId)),errors.collect(cdk().propertyValidator("resourceId",cdk().validateString)(properties.resourceId)),errors.collect(cdk().propertyValidator("resourceType",cdk().requiredValidator)(properties.resourceType)),errors.collect(cdk().propertyValidator("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("trafficType",cdk().validateString)(properties.trafficType)),errors.wrap('supplied properties not correct for "CfnFlowLogProps"')}function convertCfnFlowLogPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnFlowLogPropsValidator(properties).assertSuccess(),{DeliverCrossAccountRole:cdk().stringToCloudFormation(properties.deliverCrossAccountRole),DeliverLogsPermissionArn:cdk().stringToCloudFormation(properties.deliverLogsPermissionArn),DestinationOptions:cdk().objectToCloudFormation(properties.destinationOptions),LogDestination:cdk().stringToCloudFormation(properties.logDestination),LogDestinationType:cdk().stringToCloudFormation(properties.logDestinationType),LogFormat:cdk().stringToCloudFormation(properties.logFormat),LogGroupName:cdk().stringToCloudFormation(properties.logGroupName),MaxAggregationInterval:cdk().numberToCloudFormation(properties.maxAggregationInterval),ResourceId:cdk().stringToCloudFormation(properties.resourceId),ResourceType:cdk().stringToCloudFormation(properties.resourceType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TrafficType:cdk().stringToCloudFormation(properties.trafficType)}):properties}function CfnFlowLogPropsFromCloudFormation(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("deliverCrossAccountRole","DeliverCrossAccountRole",properties.DeliverCrossAccountRole!=null?cfn_parse().FromCloudFormation.getString(properties.DeliverCrossAccountRole):void 0),ret.addPropertyResult("deliverLogsPermissionArn","DeliverLogsPermissionArn",properties.DeliverLogsPermissionArn!=null?cfn_parse().FromCloudFormation.getString(properties.DeliverLogsPermissionArn):void 0),ret.addPropertyResult("destinationOptions","DestinationOptions",properties.DestinationOptions!=null?cfn_parse().FromCloudFormation.getAny(properties.DestinationOptions):void 0),ret.addPropertyResult("logDestination","LogDestination",properties.LogDestination!=null?cfn_parse().FromCloudFormation.getString(properties.LogDestination):void 0),ret.addPropertyResult("logDestinationType","LogDestinationType",properties.LogDestinationType!=null?cfn_parse().FromCloudFormation.getString(properties.LogDestinationType):void 0),ret.addPropertyResult("logFormat","LogFormat",properties.LogFormat!=null?cfn_parse().FromCloudFormation.getString(properties.LogFormat):void 0),ret.addPropertyResult("logGroupName","LogGroupName",properties.LogGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.LogGroupName):void 0),ret.addPropertyResult("maxAggregationInterval","MaxAggregationInterval",properties.MaxAggregationInterval!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxAggregationInterval):void 0),ret.addPropertyResult("resourceId","ResourceId",properties.ResourceId!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceId):void 0),ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("trafficType","TrafficType",properties.TrafficType!=null?cfn_parse().FromCloudFormation.getString(properties.TrafficType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnGatewayRouteTableAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnGatewayRouteTableAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::GatewayRouteTableAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnGatewayRouteTableAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnGatewayRouteTableAssociation(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 isCfnGatewayRouteTableAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME}_gatewayId;_routeTableId;cfnPropertyNames={gatewayId:"GatewayId",routeTableId:"RouteTableId"};constructor(scope,id,props){super(scope,id,{type:CfnGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnGatewayRouteTableAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnGatewayRouteTableAssociation),error}cdk().requireProperty(props,"gatewayId",this),cdk().requireProperty(props,"routeTableId",this),this._gatewayId=cdk().getRefProperty(props.gatewayId?.internetGatewayRef,"internetGatewayId")??cdk().getRefProperty(props.gatewayId?.vpnGatewayRef,"vpnGatewayId")??cdk().ensureStringOrUndefined(props.gatewayId,"gatewayId","ec2.IInternetGatewayRef | ec2.IVPNGatewayRef | string"),this._routeTableId=cdk().getRefProperty(props.routeTableId?.routeTableRef,"routeTableId")??cdk().ensureStringOrUndefined(props.routeTableId,"routeTableId","ec2.IRouteTableRef | string")}get gatewayRouteTableAssociationRef(){return{gatewayId:this.ref}}get gatewayId(){return this._gatewayId}set gatewayId(value){cdk().traceProperty(this.node,"GatewayId"),this._gatewayId=value}get routeTableId(){return this._routeTableId}set routeTableId(value){cdk().traceProperty(this.node,"RouteTableId"),this._routeTableId=value}get attrAssociationId(){return cdk().Token.asString(this.getAtt("AssociationId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{gatewayId:this._gatewayId,routeTableId:this._routeTableId}}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",CfnGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnGatewayRouteTableAssociationPropsToCloudFormation(props)}}exports.CfnGatewayRouteTableAssociation=CfnGatewayRouteTableAssociation;function CfnGatewayRouteTableAssociationPropsValidator(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("gatewayId",cdk().requiredValidator)(properties.gatewayId)),errors.collect(cdk().propertyValidator("gatewayId",cdk().validateString)(properties.gatewayId)),errors.collect(cdk().propertyValidator("routeTableId",cdk().requiredValidator)(properties.routeTableId)),errors.collect(cdk().propertyValidator("routeTableId",cdk().validateString)(properties.routeTableId)),errors.wrap('supplied properties not correct for "CfnGatewayRouteTableAssociationProps"')}function convertCfnGatewayRouteTableAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGatewayRouteTableAssociationPropsValidator(properties).assertSuccess(),{GatewayId:cdk().stringToCloudFormation(properties.gatewayId),RouteTableId:cdk().stringToCloudFormation(properties.routeTableId)}):properties}function CfnGatewayRouteTableAssociationPropsFromCloudFormation(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("gatewayId","GatewayId",properties.GatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.GatewayId):void 0),ret.addPropertyResult("routeTableId","RouteTableId",properties.RouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.RouteTableId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnHost extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnHost",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::Host";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnHostPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnHost(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 isCfnHost(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnHost.CFN_RESOURCE_TYPE_NAME}_assetId;_autoPlacement;_availabilityZone;cdkTagManager;_hostMaintenance;_hostRecovery;_instanceFamily;_instanceType;_outpostArn;_tags;cfnPropertyNames={assetId:"AssetId",autoPlacement:"AutoPlacement",availabilityZone:"AvailabilityZone",tags:"Tags",hostMaintenance:"HostMaintenance",hostRecovery:"HostRecovery",instanceFamily:"InstanceFamily",instanceType:"InstanceType",outpostArn:"OutpostArn"};constructor(scope,id,props){super(scope,id,{type:CfnHost.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnHostProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnHost),error}cdk().requireProperty(props,"availabilityZone",this),this._assetId=props.assetId,this._autoPlacement=props.autoPlacement,this._availabilityZone=props.availabilityZone,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::Host",void 0,{tagPropertyName:"tags"}),this._hostMaintenance=props.hostMaintenance,this._hostRecovery=props.hostRecovery,this._instanceFamily=props.instanceFamily,this._instanceType=props.instanceType,this._outpostArn=props.outpostArn,this._tags=props.tags}get hostRef(){return{hostId:this.ref}}get assetId(){return this._assetId}set assetId(value){cdk().traceProperty(this.node,"AssetId"),this._assetId=value}get autoPlacement(){return this._autoPlacement}set autoPlacement(value){cdk().traceProperty(this.node,"AutoPlacement"),this._autoPlacement=value}get availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get hostMaintenance(){return this._hostMaintenance}set hostMaintenance(value){cdk().traceProperty(this.node,"HostMaintenance"),this._hostMaintenance=value}get hostRecovery(){return this._hostRecovery}set hostRecovery(value){cdk().traceProperty(this.node,"HostRecovery"),this._hostRecovery=value}get instanceFamily(){return this._instanceFamily}set instanceFamily(value){cdk().traceProperty(this.node,"InstanceFamily"),this._instanceFamily=value}get instanceType(){return this._instanceType}set instanceType(value){cdk().traceProperty(this.node,"InstanceType"),this._instanceType=value}get outpostArn(){return this._outpostArn}set outpostArn(value){cdk().traceProperty(this.node,"OutpostArn"),this._outpostArn=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrHostId(){return cdk().Token.asString(this.getAtt("HostId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{assetId:this._assetId,autoPlacement:this._autoPlacement,availabilityZone:this._availabilityZone,tags:this.cdkTagManager.renderTags(this._tags),hostMaintenance:this._hostMaintenance,hostRecovery:this._hostRecovery,instanceFamily:this._instanceFamily,instanceType:this._instanceType,outpostArn:this._outpostArn}}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",CfnHost.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnHostPropsToCloudFormation(props)}}exports.CfnHost=CfnHost;function CfnHostPropsValidator(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("assetId",cdk().validateString)(properties.assetId)),errors.collect(cdk().propertyValidator("autoPlacement",cdk().validateString)(properties.autoPlacement)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().requiredValidator)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("hostMaintenance",cdk().validateString)(properties.hostMaintenance)),errors.collect(cdk().propertyValidator("hostRecovery",cdk().validateString)(properties.hostRecovery)),errors.collect(cdk().propertyValidator("instanceFamily",cdk().validateString)(properties.instanceFamily)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("outpostArn",cdk().validateString)(properties.outpostArn)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnHostProps"')}function convertCfnHostPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnHostPropsValidator(properties).assertSuccess(),{AssetId:cdk().stringToCloudFormation(properties.assetId),AutoPlacement:cdk().stringToCloudFormation(properties.autoPlacement),AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),HostMaintenance:cdk().stringToCloudFormation(properties.hostMaintenance),HostRecovery:cdk().stringToCloudFormation(properties.hostRecovery),InstanceFamily:cdk().stringToCloudFormation(properties.instanceFamily),InstanceType:cdk().stringToCloudFormation(properties.instanceType),OutpostArn:cdk().stringToCloudFormation(properties.outpostArn),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnHostPropsFromCloudFormation(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("assetId","AssetId",properties.AssetId!=null?cfn_parse().FromCloudFormation.getString(properties.AssetId):void 0),ret.addPropertyResult("autoPlacement","AutoPlacement",properties.AutoPlacement!=null?cfn_parse().FromCloudFormation.getString(properties.AutoPlacement):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("hostMaintenance","HostMaintenance",properties.HostMaintenance!=null?cfn_parse().FromCloudFormation.getString(properties.HostMaintenance):void 0),ret.addPropertyResult("hostRecovery","HostRecovery",properties.HostRecovery!=null?cfn_parse().FromCloudFormation.getString(properties.HostRecovery):void 0),ret.addPropertyResult("instanceFamily","InstanceFamily",properties.InstanceFamily!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceFamily):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("outpostArn","OutpostArn",properties.OutpostArn!=null?cfn_parse().FromCloudFormation.getString(properties.OutpostArn):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 CfnIPAM extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAM",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAM";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnIPAM(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 isCfnIPAM(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnIPAM.CFN_RESOURCE_TYPE_NAME}static fromIPAMArn(scope,id,arn){class Import extends cdk().Resource{ipamRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam/${IpamId}").parse(arn2);this.ipamRef={ipamId:variables.IpamId,ipamArn:arn2}}}return new Import(scope,id,arn)}static fromIpamId(scope,id,ipamId){class Import extends cdk().Resource{ipamRef;constructor(scope2,id2,ipamId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam/${IpamId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,IpamId:ipamId2});super(scope2,id2,{environmentFromArn:arn}),this.ipamRef={ipamId:ipamId2,ipamArn:arn}}}return new Import(scope,id,ipamId)}static arnForIPAM(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IIPAMRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForIPAM),error}return resource.ipamRef.ipamArn}_defaultResourceDiscoveryOrganizationalUnitExclusions;_description;_enablePrivateGua;_meteredAccount;_operatingRegions;tags;_tagsRaw;_tier;cfnPropertyNames={defaultResourceDiscoveryOrganizationalUnitExclusions:"DefaultResourceDiscoveryOrganizationalUnitExclusions",description:"Description",enablePrivateGua:"EnablePrivateGua",meteredAccount:"MeteredAccount",operatingRegions:"OperatingRegions",tags:"Tags",tier:"Tier"};constructor(scope,id,props={}){super(scope,id,{type:CfnIPAM.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnIPAMProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAM),error}this._defaultResourceDiscoveryOrganizationalUnitExclusions=props.defaultResourceDiscoveryOrganizationalUnitExclusions,this._description=props.description,this._enablePrivateGua=props.enablePrivateGua,this._meteredAccount=props.meteredAccount,this._operatingRegions=props.operatingRegions,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::IPAM",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._tier=props.tier}get ipamRef(){return{ipamId:this.ref,ipamArn:this.attrArn}}get defaultResourceDiscoveryOrganizationalUnitExclusions(){return this._defaultResourceDiscoveryOrganizationalUnitExclusions}set defaultResourceDiscoveryOrganizationalUnitExclusions(value){cdk().traceProperty(this.node,"DefaultResourceDiscoveryOrganizationalUnitExclusions"),this._defaultResourceDiscoveryOrganizationalUnitExclusions=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get enablePrivateGua(){return this._enablePrivateGua}set enablePrivateGua(value){cdk().traceProperty(this.node,"EnablePrivateGua"),this._enablePrivateGua=value}get meteredAccount(){return this._meteredAccount}set meteredAccount(value){cdk().traceProperty(this.node,"MeteredAccount"),this._meteredAccount=value}get operatingRegions(){return this._operatingRegions}set operatingRegions(value){cdk().traceProperty(this.node,"OperatingRegions"),this._operatingRegions=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get tier(){return this._tier}set tier(value){cdk().traceProperty(this.node,"Tier"),this._tier=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrDefaultResourceDiscoveryAssociationId(){return cdk().Token.asString(this.getAtt("DefaultResourceDiscoveryAssociationId",cdk().ResolutionTypeHint.STRING))}get attrDefaultResourceDiscoveryId(){return cdk().Token.asString(this.getAtt("DefaultResourceDiscoveryId",cdk().ResolutionTypeHint.STRING))}get attrIpamId(){return cdk().Token.asString(this.getAtt("IpamId",cdk().ResolutionTypeHint.STRING))}get attrPrivateDefaultScopeId(){return cdk().Token.asString(this.getAtt("PrivateDefaultScopeId",cdk().ResolutionTypeHint.STRING))}get attrPublicDefaultScopeId(){return cdk().Token.asString(this.getAtt("PublicDefaultScopeId",cdk().ResolutionTypeHint.STRING))}get attrResourceDiscoveryAssociationCount(){return cdk().Token.asNumber(this.getAtt("ResourceDiscoveryAssociationCount",cdk().ResolutionTypeHint.NUMBER))}get attrScopeCount(){return cdk().Token.asNumber(this.getAtt("ScopeCount",cdk().ResolutionTypeHint.NUMBER))}get cfnProperties(){return{defaultResourceDiscoveryOrganizationalUnitExclusions:this._defaultResourceDiscoveryOrganizationalUnitExclusions,description:this._description,enablePrivateGua:this._enablePrivateGua,meteredAccount:this._meteredAccount,operatingRegions:this._operatingRegions,tags:this.tags.renderTags(),tier:this._tier}}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",CfnIPAM.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnIPAMPropsToCloudFormation(props)}}exports.CfnIPAM=CfnIPAM;function CfnIPAMIpamOperatingRegionPropertyValidator(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("regionName",cdk().requiredValidator)(properties.regionName)),errors.collect(cdk().propertyValidator("regionName",cdk().validateString)(properties.regionName)),errors.wrap('supplied properties not correct for "IpamOperatingRegionProperty"')}function convertCfnIPAMIpamOperatingRegionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMIpamOperatingRegionPropertyValidator(properties).assertSuccess(),{RegionName:cdk().stringToCloudFormation(properties.regionName)}):properties}function CfnIPAMIpamOperatingRegionPropertyFromCloudFormation(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("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMIpamOrganizationalUnitExclusionPropertyValidator(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("organizationsEntityPath",cdk().requiredValidator)(properties.organizationsEntityPath)),errors.collect(cdk().propertyValidator("organizationsEntityPath",cdk().validateString)(properties.organizationsEntityPath)),errors.wrap('supplied properties not correct for "IpamOrganizationalUnitExclusionProperty"')}function convertCfnIPAMIpamOrganizationalUnitExclusionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMIpamOrganizationalUnitExclusionPropertyValidator(properties).assertSuccess(),{OrganizationsEntityPath:cdk().stringToCloudFormation(properties.organizationsEntityPath)}):properties}function CfnIPAMIpamOrganizationalUnitExclusionPropertyFromCloudFormation(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("organizationsEntityPath","OrganizationsEntityPath",properties.OrganizationsEntityPath!=null?cfn_parse().FromCloudFormation.getString(properties.OrganizationsEntityPath):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMPropsValidator(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("defaultResourceDiscoveryOrganizationalUnitExclusions",cdk().listValidator(CfnIPAMIpamOrganizationalUnitExclusionPropertyValidator))(properties.defaultResourceDiscoveryOrganizationalUnitExclusions)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("enablePrivateGua",cdk().validateBoolean)(properties.enablePrivateGua)),errors.collect(cdk().propertyValidator("meteredAccount",cdk().validateString)(properties.meteredAccount)),errors.collect(cdk().propertyValidator("operatingRegions",cdk().listValidator(CfnIPAMIpamOperatingRegionPropertyValidator))(properties.operatingRegions)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("tier",cdk().validateString)(properties.tier)),errors.wrap('supplied properties not correct for "CfnIPAMProps"')}function convertCfnIPAMPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMPropsValidator(properties).assertSuccess(),{DefaultResourceDiscoveryOrganizationalUnitExclusions:cdk().listMapper(convertCfnIPAMIpamOrganizationalUnitExclusionPropertyToCloudFormation)(properties.defaultResourceDiscoveryOrganizationalUnitExclusions),Description:cdk().stringToCloudFormation(properties.description),EnablePrivateGua:cdk().booleanToCloudFormation(properties.enablePrivateGua),MeteredAccount:cdk().stringToCloudFormation(properties.meteredAccount),OperatingRegions:cdk().listMapper(convertCfnIPAMIpamOperatingRegionPropertyToCloudFormation)(properties.operatingRegions),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Tier:cdk().stringToCloudFormation(properties.tier)}):properties}function CfnIPAMPropsFromCloudFormation(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("defaultResourceDiscoveryOrganizationalUnitExclusions","DefaultResourceDiscoveryOrganizationalUnitExclusions",properties.DefaultResourceDiscoveryOrganizationalUnitExclusions!=null?cfn_parse().FromCloudFormation.getArray(CfnIPAMIpamOrganizationalUnitExclusionPropertyFromCloudFormation)(properties.DefaultResourceDiscoveryOrganizationalUnitExclusions):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("enablePrivateGua","EnablePrivateGua",properties.EnablePrivateGua!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnablePrivateGua):void 0),ret.addPropertyResult("meteredAccount","MeteredAccount",properties.MeteredAccount!=null?cfn_parse().FromCloudFormation.getString(properties.MeteredAccount):void 0),ret.addPropertyResult("operatingRegions","OperatingRegions",properties.OperatingRegions!=null?cfn_parse().FromCloudFormation.getArray(CfnIPAMIpamOperatingRegionPropertyFromCloudFormation)(properties.OperatingRegions):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tier","Tier",properties.Tier!=null?cfn_parse().FromCloudFormation.getString(properties.Tier):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnIPAMAllocation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMAllocation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMAllocation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMAllocationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnIPAMAllocation(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 isCfnIPAMAllocation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnIPAMAllocation.CFN_RESOURCE_TYPE_NAME}_cidr;_description;_ipamPoolId;_netmaskLength;cfnPropertyNames={cidr:"Cidr",description:"Description",ipamPoolId:"IpamPoolId",netmaskLength:"NetmaskLength"};constructor(scope,id,props){super(scope,id,{type:CfnIPAMAllocation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnIPAMAllocationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMAllocation),error}cdk().requireProperty(props,"ipamPoolId",this),this._cidr=props.cidr,this._description=props.description,this._ipamPoolId=props.ipamPoolId,this._netmaskLength=props.netmaskLength}get ipamAllocationRef(){return{ipamPoolId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),ipamPoolAllocationId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),cidr:cdk().Fn.select(2,cdk().Fn.split("|",this.ref))}}get cidr(){return this._cidr}set cidr(value){cdk().traceProperty(this.node,"Cidr"),this._cidr=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get ipamPoolId(){return this._ipamPoolId}set ipamPoolId(value){cdk().traceProperty(this.node,"IpamPoolId"),this._ipamPoolId=value}get netmaskLength(){return this._netmaskLength}set netmaskLength(value){cdk().traceProperty(this.node,"NetmaskLength"),this._netmaskLength=value}get attrIpamPoolAllocationId(){return cdk().Token.asString(this.getAtt("IpamPoolAllocationId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{cidr:this._cidr,description:this._description,ipamPoolId:this._ipamPoolId,netmaskLength:this._netmaskLength}}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",CfnIPAMAllocation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnIPAMAllocationPropsToCloudFormation(props)}}exports.CfnIPAMAllocation=CfnIPAMAllocation;function CfnIPAMAllocationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidr",cdk().validateString)(properties.cidr)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("ipamPoolId",cdk().requiredValidator)(properties.ipamPoolId)),errors.collect(cdk().propertyValidator("ipamPoolId",cdk().validateString)(properties.ipamPoolId)),errors.collect(cdk().propertyValidator("netmaskLength",cdk().validateNumber)(properties.netmaskLength)),errors.wrap('supplied properties not correct for "CfnIPAMAllocationProps"')}function convertCfnIPAMAllocationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMAllocationPropsValidator(properties).assertSuccess(),{Cidr:cdk().stringToCloudFormation(properties.cidr),Description:cdk().stringToCloudFormation(properties.description),IpamPoolId:cdk().stringToCloudFormation(properties.ipamPoolId),NetmaskLength:cdk().numberToCloudFormation(properties.netmaskLength)}):properties}function CfnIPAMAllocationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("ipamPoolId","IpamPoolId",properties.IpamPoolId!=null?cfn_parse().FromCloudFormation.getString(properties.IpamPoolId):void 0),ret.addPropertyResult("netmaskLength","NetmaskLength",properties.NetmaskLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.NetmaskLength):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnIPAMPool extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMPool",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMPool";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMPoolPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnIPAMPool(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 isCfnIPAMPool(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnIPAMPool.CFN_RESOURCE_TYPE_NAME}static fromIPAMPoolArn(scope,id,arn){class Import extends cdk().Resource{ipamPoolRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-pool/${IpamPoolId}").parse(arn2);this.ipamPoolRef={ipamPoolId:variables.IpamPoolId,ipamPoolArn:arn2}}}return new Import(scope,id,arn)}static fromIpamPoolId(scope,id,ipamPoolId){class Import extends cdk().Resource{ipamPoolRef;constructor(scope2,id2,ipamPoolId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-pool/${IpamPoolId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,IpamPoolId:ipamPoolId2});super(scope2,id2,{environmentFromArn:arn}),this.ipamPoolRef={ipamPoolId:ipamPoolId2,ipamPoolArn:arn}}}return new Import(scope,id,ipamPoolId)}static arnForIPAMPool(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IIPAMPoolRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForIPAMPool),error}return resource.ipamPoolRef.ipamPoolArn}_addressFamily;_allocationDefaultNetmaskLength;_allocationMaxNetmaskLength;_allocationMinNetmaskLength;_allocationResourceTags;_autoImport;_awsService;_description;_ipamScopeId;_locale;_provisionedCidrs;_publicIpSource;_publiclyAdvertisable;_sourceIpamPoolId;_sourceResource;tags;_tagsRaw;cfnPropertyNames={addressFamily:"AddressFamily",allocationDefaultNetmaskLength:"AllocationDefaultNetmaskLength",allocationMaxNetmaskLength:"AllocationMaxNetmaskLength",allocationMinNetmaskLength:"AllocationMinNetmaskLength",allocationResourceTags:"AllocationResourceTags",autoImport:"AutoImport",awsService:"AwsService",description:"Description",ipamScopeId:"IpamScopeId",locale:"Locale",provisionedCidrs:"ProvisionedCidrs",publicIpSource:"PublicIpSource",publiclyAdvertisable:"PubliclyAdvertisable",sourceIpamPoolId:"SourceIpamPoolId",sourceResource:"SourceResource",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnIPAMPool.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnIPAMPoolProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMPool),error}cdk().requireProperty(props,"addressFamily",this),cdk().requireProperty(props,"ipamScopeId",this),this._addressFamily=props.addressFamily,this._allocationDefaultNetmaskLength=props.allocationDefaultNetmaskLength,this._allocationMaxNetmaskLength=props.allocationMaxNetmaskLength,this._allocationMinNetmaskLength=props.allocationMinNetmaskLength,this._allocationResourceTags=props.allocationResourceTags,this._autoImport=props.autoImport,this._awsService=props.awsService,this._description=props.description,this._ipamScopeId=props.ipamScopeId,this._locale=props.locale,this._provisionedCidrs=props.provisionedCidrs,this._publicIpSource=props.publicIpSource,this._publiclyAdvertisable=props.publiclyAdvertisable,this._sourceIpamPoolId=props.sourceIpamPoolId,this._sourceResource=props.sourceResource,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::IPAMPool",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get ipamPoolRef(){return{ipamPoolId:this.ref,ipamPoolArn:this.attrArn}}get addressFamily(){return this._addressFamily}set addressFamily(value){cdk().traceProperty(this.node,"AddressFamily"),this._addressFamily=value}get allocationDefaultNetmaskLength(){return this._allocationDefaultNetmaskLength}set allocationDefaultNetmaskLength(value){cdk().traceProperty(this.node,"AllocationDefaultNetmaskLength"),this._allocationDefaultNetmaskLength=value}get allocationMaxNetmaskLength(){return this._allocationMaxNetmaskLength}set allocationMaxNetmaskLength(value){cdk().traceProperty(this.node,"AllocationMaxNetmaskLength"),this._allocationMaxNetmaskLength=value}get allocationMinNetmaskLength(){return this._allocationMinNetmaskLength}set allocationMinNetmaskLength(value){cdk().traceProperty(this.node,"AllocationMinNetmaskLength"),this._allocationMinNetmaskLength=value}get allocationResourceTags(){return this._allocationResourceTags}set allocationResourceTags(value){cdk().traceProperty(this.node,"AllocationResourceTags"),this._allocationResourceTags=value}get autoImport(){return this._autoImport}set autoImport(value){cdk().traceProperty(this.node,"AutoImport"),this._autoImport=value}get awsService(){return this._awsService}set awsService(value){cdk().traceProperty(this.node,"AwsService"),this._awsService=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get ipamScopeId(){return this._ipamScopeId}set ipamScopeId(value){cdk().traceProperty(this.node,"IpamScopeId"),this._ipamScopeId=value}get locale(){return this._locale}set locale(value){cdk().traceProperty(this.node,"Locale"),this._locale=value}get provisionedCidrs(){return this._provisionedCidrs}set provisionedCidrs(value){cdk().traceProperty(this.node,"ProvisionedCidrs"),this._provisionedCidrs=value}get publicIpSource(){return this._publicIpSource}set publicIpSource(value){cdk().traceProperty(this.node,"PublicIpSource"),this._publicIpSource=value}get publiclyAdvertisable(){return this._publiclyAdvertisable}set publiclyAdvertisable(value){cdk().traceProperty(this.node,"PubliclyAdvertisable"),this._publiclyAdvertisable=value}get sourceIpamPoolId(){return this._sourceIpamPoolId}set sourceIpamPoolId(value){cdk().traceProperty(this.node,"SourceIpamPoolId"),this._sourceIpamPoolId=value}get sourceResource(){return this._sourceResource}set sourceResource(value){cdk().traceProperty(this.node,"SourceResource"),this._sourceResource=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrIpamArn(){return cdk().Token.asString(this.getAtt("IpamArn",cdk().ResolutionTypeHint.STRING))}get attrIpamPoolId(){return cdk().Token.asString(this.getAtt("IpamPoolId",cdk().ResolutionTypeHint.STRING))}get attrIpamScopeArn(){return cdk().Token.asString(this.getAtt("IpamScopeArn",cdk().ResolutionTypeHint.STRING))}get attrIpamScopeType(){return cdk().Token.asString(this.getAtt("IpamScopeType",cdk().ResolutionTypeHint.STRING))}get attrPoolDepth(){return cdk().Token.asNumber(this.getAtt("PoolDepth",cdk().ResolutionTypeHint.NUMBER))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrStateMessage(){return cdk().Token.asString(this.getAtt("StateMessage",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{addressFamily:this._addressFamily,allocationDefaultNetmaskLength:this._allocationDefaultNetmaskLength,allocationMaxNetmaskLength:this._allocationMaxNetmaskLength,allocationMinNetmaskLength:this._allocationMinNetmaskLength,allocationResourceTags:this._allocationResourceTags,autoImport:this._autoImport,awsService:this._awsService,description:this._description,ipamScopeId:this._ipamScopeId,locale:this._locale,provisionedCidrs:this._provisionedCidrs,publicIpSource:this._publicIpSource,publiclyAdvertisable:this._publiclyAdvertisable,sourceIpamPoolId:this._sourceIpamPoolId,sourceResource:this._sourceResource,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",CfnIPAMPool.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnIPAMPoolPropsToCloudFormation(props)}}exports.CfnIPAMPool=CfnIPAMPool;function CfnIPAMPoolProvisionedCidrPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidr",cdk().requiredValidator)(properties.cidr)),errors.collect(cdk().propertyValidator("cidr",cdk().validateString)(properties.cidr)),errors.wrap('supplied properties not correct for "ProvisionedCidrProperty"')}function convertCfnIPAMPoolProvisionedCidrPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMPoolProvisionedCidrPropertyValidator(properties).assertSuccess(),{Cidr:cdk().stringToCloudFormation(properties.cidr)}):properties}function CfnIPAMPoolProvisionedCidrPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.Cidr):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMPoolSourceResourcePropertyValidator(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("resourceId",cdk().requiredValidator)(properties.resourceId)),errors.collect(cdk().propertyValidator("resourceId",cdk().validateString)(properties.resourceId)),errors.collect(cdk().propertyValidator("resourceOwner",cdk().requiredValidator)(properties.resourceOwner)),errors.collect(cdk().propertyValidator("resourceOwner",cdk().validateString)(properties.resourceOwner)),errors.collect(cdk().propertyValidator("resourceRegion",cdk().requiredValidator)(properties.resourceRegion)),errors.collect(cdk().propertyValidator("resourceRegion",cdk().validateString)(properties.resourceRegion)),errors.collect(cdk().propertyValidator("resourceType",cdk().requiredValidator)(properties.resourceType)),errors.collect(cdk().propertyValidator("resourceType",cdk().validateString)(properties.resourceType)),errors.wrap('supplied properties not correct for "SourceResourceProperty"')}function convertCfnIPAMPoolSourceResourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMPoolSourceResourcePropertyValidator(properties).assertSuccess(),{ResourceId:cdk().stringToCloudFormation(properties.resourceId),ResourceOwner:cdk().stringToCloudFormation(properties.resourceOwner),ResourceRegion:cdk().stringToCloudFormation(properties.resourceRegion),ResourceType:cdk().stringToCloudFormation(properties.resourceType)}):properties}function CfnIPAMPoolSourceResourcePropertyFromCloudFormation(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("resourceId","ResourceId",properties.ResourceId!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceId):void 0),ret.addPropertyResult("resourceOwner","ResourceOwner",properties.ResourceOwner!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceOwner):void 0),ret.addPropertyResult("resourceRegion","ResourceRegion",properties.ResourceRegion!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceRegion):void 0),ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMPoolPropsValidator(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("addressFamily",cdk().requiredValidator)(properties.addressFamily)),errors.collect(cdk().propertyValidator("addressFamily",cdk().validateString)(properties.addressFamily)),errors.collect(cdk().propertyValidator("allocationDefaultNetmaskLength",cdk().validateNumber)(properties.allocationDefaultNetmaskLength)),errors.collect(cdk().propertyValidator("allocationMaxNetmaskLength",cdk().validateNumber)(properties.allocationMaxNetmaskLength)),errors.collect(cdk().propertyValidator("allocationMinNetmaskLength",cdk().validateNumber)(properties.allocationMinNetmaskLength)),errors.collect(cdk().propertyValidator("allocationResourceTags",cdk().listValidator(cdk().validateCfnTag))(properties.allocationResourceTags)),errors.collect(cdk().propertyValidator("autoImport",cdk().validateBoolean)(properties.autoImport)),errors.collect(cdk().propertyValidator("awsService",cdk().validateString)(properties.awsService)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("ipamScopeId",cdk().requiredValidator)(properties.ipamScopeId)),errors.collect(cdk().propertyValidator("ipamScopeId",cdk().validateString)(properties.ipamScopeId)),errors.collect(cdk().propertyValidator("locale",cdk().validateString)(properties.locale)),errors.collect(cdk().propertyValidator("provisionedCidrs",cdk().listValidator(CfnIPAMPoolProvisionedCidrPropertyValidator))(properties.provisionedCidrs)),errors.collect(cdk().propertyValidator("publicIpSource",cdk().validateString)(properties.publicIpSource)),errors.collect(cdk().propertyValidator("publiclyAdvertisable",cdk().validateBoolean)(properties.publiclyAdvertisable)),errors.collect(cdk().propertyValidator("sourceIpamPoolId",cdk().validateString)(properties.sourceIpamPoolId)),errors.collect(cdk().propertyValidator("sourceResource",CfnIPAMPoolSourceResourcePropertyValidator)(properties.sourceResource)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPAMPoolProps"')}function convertCfnIPAMPoolPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMPoolPropsValidator(properties).assertSuccess(),{AddressFamily:cdk().stringToCloudFormation(properties.addressFamily),AllocationDefaultNetmaskLength:cdk().numberToCloudFormation(properties.allocationDefaultNetmaskLength),AllocationMaxNetmaskLength:cdk().numberToCloudFormation(properties.allocationMaxNetmaskLength),AllocationMinNetmaskLength:cdk().numberToCloudFormation(properties.allocationMinNetmaskLength),AllocationResourceTags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.allocationResourceTags),AutoImport:cdk().booleanToCloudFormation(properties.autoImport),AwsService:cdk().stringToCloudFormation(properties.awsService),Description:cdk().stringToCloudFormation(properties.description),IpamScopeId:cdk().stringToCloudFormation(properties.ipamScopeId),Locale:cdk().stringToCloudFormation(properties.locale),ProvisionedCidrs:cdk().listMapper(convertCfnIPAMPoolProvisionedCidrPropertyToCloudFormation)(properties.provisionedCidrs),PublicIpSource:cdk().stringToCloudFormation(properties.publicIpSource),PubliclyAdvertisable:cdk().booleanToCloudFormation(properties.publiclyAdvertisable),SourceIpamPoolId:cdk().stringToCloudFormation(properties.sourceIpamPoolId),SourceResource:convertCfnIPAMPoolSourceResourcePropertyToCloudFormation(properties.sourceResource),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPAMPoolPropsFromCloudFormation(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("addressFamily","AddressFamily",properties.AddressFamily!=null?cfn_parse().FromCloudFormation.getString(properties.AddressFamily):void 0),ret.addPropertyResult("allocationDefaultNetmaskLength","AllocationDefaultNetmaskLength",properties.AllocationDefaultNetmaskLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.AllocationDefaultNetmaskLength):void 0),ret.addPropertyResult("allocationMaxNetmaskLength","AllocationMaxNetmaskLength",properties.AllocationMaxNetmaskLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.AllocationMaxNetmaskLength):void 0),ret.addPropertyResult("allocationMinNetmaskLength","AllocationMinNetmaskLength",properties.AllocationMinNetmaskLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.AllocationMinNetmaskLength):void 0),ret.addPropertyResult("allocationResourceTags","AllocationResourceTags",properties.AllocationResourceTags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.AllocationResourceTags):void 0),ret.addPropertyResult("autoImport","AutoImport",properties.AutoImport!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AutoImport):void 0),ret.addPropertyResult("awsService","AwsService",properties.AwsService!=null?cfn_parse().FromCloudFormation.getString(properties.AwsService):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("ipamScopeId","IpamScopeId",properties.IpamScopeId!=null?cfn_parse().FromCloudFormation.getString(properties.IpamScopeId):void 0),ret.addPropertyResult("locale","Locale",properties.Locale!=null?cfn_parse().FromCloudFormation.getString(properties.Locale):void 0),ret.addPropertyResult("provisionedCidrs","ProvisionedCidrs",properties.ProvisionedCidrs!=null?cfn_parse().FromCloudFormation.getArray(CfnIPAMPoolProvisionedCidrPropertyFromCloudFormation)(properties.ProvisionedCidrs):void 0),ret.addPropertyResult("publicIpSource","PublicIpSource",properties.PublicIpSource!=null?cfn_parse().FromCloudFormation.getString(properties.PublicIpSource):void 0),ret.addPropertyResult("publiclyAdvertisable","PubliclyAdvertisable",properties.PubliclyAdvertisable!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PubliclyAdvertisable):void 0),ret.addPropertyResult("sourceIpamPoolId","SourceIpamPoolId",properties.SourceIpamPoolId!=null?cfn_parse().FromCloudFormation.getString(properties.SourceIpamPoolId):void 0),ret.addPropertyResult("sourceResource","SourceResource",properties.SourceResource!=null?CfnIPAMPoolSourceResourcePropertyFromCloudFormation(properties.SourceResource):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 CfnIPAMPoolCidr extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMPoolCidr",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMPoolCidr";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMPoolCidrPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnIPAMPoolCidr(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 isCfnIPAMPoolCidr(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnIPAMPoolCidr.CFN_RESOURCE_TYPE_NAME}_cidr;_ipamPoolId;_netmaskLength;cfnPropertyNames={cidr:"Cidr",ipamPoolId:"IpamPoolId",netmaskLength:"NetmaskLength"};constructor(scope,id,props){super(scope,id,{type:CfnIPAMPoolCidr.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnIPAMPoolCidrProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMPoolCidr),error}cdk().requireProperty(props,"ipamPoolId",this),this._cidr=props.cidr,this._ipamPoolId=props.ipamPoolId,this._netmaskLength=props.netmaskLength}get ipamPoolCidrRef(){return{ipamPoolId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),ipamPoolCidrId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get cidr(){return this._cidr}set cidr(value){cdk().traceProperty(this.node,"Cidr"),this._cidr=value}get ipamPoolId(){return this._ipamPoolId}set ipamPoolId(value){cdk().traceProperty(this.node,"IpamPoolId"),this._ipamPoolId=value}get netmaskLength(){return this._netmaskLength}set netmaskLength(value){cdk().traceProperty(this.node,"NetmaskLength"),this._netmaskLength=value}get attrIpamPoolCidrId(){return cdk().Token.asString(this.getAtt("IpamPoolCidrId",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{cidr:this._cidr,ipamPoolId:this._ipamPoolId,netmaskLength:this._netmaskLength}}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",CfnIPAMPoolCidr.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnIPAMPoolCidrPropsToCloudFormation(props)}}exports.CfnIPAMPoolCidr=CfnIPAMPoolCidr;function CfnIPAMPoolCidrPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidr",cdk().validateString)(properties.cidr)),errors.collect(cdk().propertyValidator("ipamPoolId",cdk().requiredValidator)(properties.ipamPoolId)),errors.collect(cdk().propertyValidator("ipamPoolId",cdk().validateString)(properties.ipamPoolId)),errors.collect(cdk().propertyValidator("netmaskLength",cdk().validateNumber)(properties.netmaskLength)),errors.wrap('supplied properties not correct for "CfnIPAMPoolCidrProps"')}function convertCfnIPAMPoolCidrPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMPoolCidrPropsValidator(properties).assertSuccess(),{Cidr:cdk().stringToCloudFormation(properties.cidr),IpamPoolId:cdk().stringToCloudFormation(properties.ipamPoolId),NetmaskLength:cdk().numberToCloudFormation(properties.netmaskLength)}):properties}function CfnIPAMPoolCidrPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("ipamPoolId","IpamPoolId",properties.IpamPoolId!=null?cfn_parse().FromCloudFormation.getString(properties.IpamPoolId):void 0),ret.addPropertyResult("netmaskLength","NetmaskLength",properties.NetmaskLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.NetmaskLength):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnIPAMResourceDiscovery extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMResourceDiscovery",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMResourceDiscovery";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMResourceDiscoveryPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnIPAMResourceDiscovery(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 isCfnIPAMResourceDiscovery(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnIPAMResourceDiscovery.CFN_RESOURCE_TYPE_NAME}static fromIPAMResourceDiscoveryArn(scope,id,arn){class Import extends cdk().Resource{ipamResourceDiscoveryRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-resource-discovery/${IpamResourceDiscoveryId}").parse(arn2);this.ipamResourceDiscoveryRef={ipamResourceDiscoveryId:variables.IpamResourceDiscoveryId,ipamResourceDiscoveryArn:arn2}}}return new Import(scope,id,arn)}static fromIpamResourceDiscoveryId(scope,id,ipamResourceDiscoveryId){class Import extends cdk().Resource{ipamResourceDiscoveryRef;constructor(scope2,id2,ipamResourceDiscoveryId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-resource-discovery/${IpamResourceDiscoveryId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,IpamResourceDiscoveryId:ipamResourceDiscoveryId2});super(scope2,id2,{environmentFromArn:arn}),this.ipamResourceDiscoveryRef={ipamResourceDiscoveryId:ipamResourceDiscoveryId2,ipamResourceDiscoveryArn:arn}}}return new Import(scope,id,ipamResourceDiscoveryId)}static arnForIPAMResourceDiscovery(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IIPAMResourceDiscoveryRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForIPAMResourceDiscovery),error}return resource.ipamResourceDiscoveryRef.ipamResourceDiscoveryArn}_description;_operatingRegions;_organizationalUnitExclusions;tags;_tagsRaw;cfnPropertyNames={description:"Description",operatingRegions:"OperatingRegions",organizationalUnitExclusions:"OrganizationalUnitExclusions",tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnIPAMResourceDiscovery.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnIPAMResourceDiscoveryProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMResourceDiscovery),error}this._description=props.description,this._operatingRegions=props.operatingRegions,this._organizationalUnitExclusions=props.organizationalUnitExclusions,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::IPAMResourceDiscovery",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get ipamResourceDiscoveryRef(){return{ipamResourceDiscoveryId:this.ref,ipamResourceDiscoveryArn:this.attrIpamResourceDiscoveryArn}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get operatingRegions(){return this._operatingRegions}set operatingRegions(value){cdk().traceProperty(this.node,"OperatingRegions"),this._operatingRegions=value}get organizationalUnitExclusions(){return this._organizationalUnitExclusions}set organizationalUnitExclusions(value){cdk().traceProperty(this.node,"OrganizationalUnitExclusions"),this._organizationalUnitExclusions=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrIpamResourceDiscoveryArn(){return cdk().Token.asString(this.getAtt("IpamResourceDiscoveryArn",cdk().ResolutionTypeHint.STRING))}get attrIpamResourceDiscoveryId(){return cdk().Token.asString(this.getAtt("IpamResourceDiscoveryId",cdk().ResolutionTypeHint.STRING))}get attrIpamResourceDiscoveryRegion(){return cdk().Token.asString(this.getAtt("IpamResourceDiscoveryRegion",cdk().ResolutionTypeHint.STRING))}get attrIsDefault(){return this.getAtt("IsDefault")}get attrOwnerId(){return cdk().Token.asString(this.getAtt("OwnerId",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,operatingRegions:this._operatingRegions,organizationalUnitExclusions:this._organizationalUnitExclusions,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",CfnIPAMResourceDiscovery.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnIPAMResourceDiscoveryPropsToCloudFormation(props)}}exports.CfnIPAMResourceDiscovery=CfnIPAMResourceDiscovery;function CfnIPAMResourceDiscoveryIpamOperatingRegionPropertyValidator(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("regionName",cdk().requiredValidator)(properties.regionName)),errors.collect(cdk().propertyValidator("regionName",cdk().validateString)(properties.regionName)),errors.wrap('supplied properties not correct for "IpamOperatingRegionProperty"')}function convertCfnIPAMResourceDiscoveryIpamOperatingRegionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMResourceDiscoveryIpamOperatingRegionPropertyValidator(properties).assertSuccess(),{RegionName:cdk().stringToCloudFormation(properties.regionName)}):properties}function CfnIPAMResourceDiscoveryIpamOperatingRegionPropertyFromCloudFormation(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("regionName","RegionName",properties.RegionName!=null?cfn_parse().FromCloudFormation.getString(properties.RegionName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMResourceDiscoveryIpamResourceDiscoveryOrganizationalUnitExclusionPropertyValidator(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("organizationsEntityPath",cdk().requiredValidator)(properties.organizationsEntityPath)),errors.collect(cdk().propertyValidator("organizationsEntityPath",cdk().validateString)(properties.organizationsEntityPath)),errors.wrap('supplied properties not correct for "IpamResourceDiscoveryOrganizationalUnitExclusionProperty"')}function convertCfnIPAMResourceDiscoveryIpamResourceDiscoveryOrganizationalUnitExclusionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMResourceDiscoveryIpamResourceDiscoveryOrganizationalUnitExclusionPropertyValidator(properties).assertSuccess(),{OrganizationsEntityPath:cdk().stringToCloudFormation(properties.organizationsEntityPath)}):properties}function CfnIPAMResourceDiscoveryIpamResourceDiscoveryOrganizationalUnitExclusionPropertyFromCloudFormation(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("organizationsEntityPath","OrganizationsEntityPath",properties.OrganizationsEntityPath!=null?cfn_parse().FromCloudFormation.getString(properties.OrganizationsEntityPath):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMResourceDiscoveryPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("operatingRegions",cdk().listValidator(CfnIPAMResourceDiscoveryIpamOperatingRegionPropertyValidator))(properties.operatingRegions)),errors.collect(cdk().propertyValidator("organizationalUnitExclusions",cdk().listValidator(CfnIPAMResourceDiscoveryIpamResourceDiscoveryOrganizationalUnitExclusionPropertyValidator))(properties.organizationalUnitExclusions)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPAMResourceDiscoveryProps"')}function convertCfnIPAMResourceDiscoveryPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMResourceDiscoveryPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),OperatingRegions:cdk().listMapper(convertCfnIPAMResourceDiscoveryIpamOperatingRegionPropertyToCloudFormation)(properties.operatingRegions),OrganizationalUnitExclusions:cdk().listMapper(convertCfnIPAMResourceDiscoveryIpamResourceDiscoveryOrganizationalUnitExclusionPropertyToCloudFormation)(properties.organizationalUnitExclusions),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPAMResourceDiscoveryPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("operatingRegions","OperatingRegions",properties.OperatingRegions!=null?cfn_parse().FromCloudFormation.getArray(CfnIPAMResourceDiscoveryIpamOperatingRegionPropertyFromCloudFormation)(properties.OperatingRegions):void 0),ret.addPropertyResult("organizationalUnitExclusions","OrganizationalUnitExclusions",properties.OrganizationalUnitExclusions!=null?cfn_parse().FromCloudFormation.getArray(CfnIPAMResourceDiscoveryIpamResourceDiscoveryOrganizationalUnitExclusionPropertyFromCloudFormation)(properties.OrganizationalUnitExclusions):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 CfnIPAMResourceDiscoveryAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMResourceDiscoveryAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMResourceDiscoveryAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMResourceDiscoveryAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnIPAMResourceDiscoveryAssociation(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 isCfnIPAMResourceDiscoveryAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnIPAMResourceDiscoveryAssociation.CFN_RESOURCE_TYPE_NAME}static fromIPAMResourceDiscoveryAssociationArn(scope,id,arn){class Import extends cdk().Resource{ipamResourceDiscoveryAssociationRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-resource-discovery-association/${IpamResourceDiscoveryAssociationId}").parse(arn2);this.ipamResourceDiscoveryAssociationRef={ipamResourceDiscoveryAssociationId:variables.IpamResourceDiscoveryAssociationId,ipamResourceDiscoveryAssociationArn:arn2}}}return new Import(scope,id,arn)}static fromIpamResourceDiscoveryAssociationId(scope,id,ipamResourceDiscoveryAssociationId){class Import extends cdk().Resource{ipamResourceDiscoveryAssociationRef;constructor(scope2,id2,ipamResourceDiscoveryAssociationId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-resource-discovery-association/${IpamResourceDiscoveryAssociationId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,IpamResourceDiscoveryAssociationId:ipamResourceDiscoveryAssociationId2});super(scope2,id2,{environmentFromArn:arn}),this.ipamResourceDiscoveryAssociationRef={ipamResourceDiscoveryAssociationId:ipamResourceDiscoveryAssociationId2,ipamResourceDiscoveryAssociationArn:arn}}}return new Import(scope,id,ipamResourceDiscoveryAssociationId)}static arnForIPAMResourceDiscoveryAssociation(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IIPAMResourceDiscoveryAssociationRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForIPAMResourceDiscoveryAssociation),error}return resource.ipamResourceDiscoveryAssociationRef.ipamResourceDiscoveryAssociationArn}_ipamId;_ipamResourceDiscoveryId;tags;_tagsRaw;cfnPropertyNames={ipamId:"IpamId",ipamResourceDiscoveryId:"IpamResourceDiscoveryId",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnIPAMResourceDiscoveryAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnIPAMResourceDiscoveryAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMResourceDiscoveryAssociation),error}cdk().requireProperty(props,"ipamId",this),cdk().requireProperty(props,"ipamResourceDiscoveryId",this),this._ipamId=props.ipamId,this._ipamResourceDiscoveryId=props.ipamResourceDiscoveryId,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::IPAMResourceDiscoveryAssociation",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get ipamResourceDiscoveryAssociationRef(){return{ipamResourceDiscoveryAssociationId:this.ref,ipamResourceDiscoveryAssociationArn:this.attrIpamResourceDiscoveryAssociationArn}}get ipamId(){return this._ipamId}set ipamId(value){cdk().traceProperty(this.node,"IpamId"),this._ipamId=value}get ipamResourceDiscoveryId(){return this._ipamResourceDiscoveryId}set ipamResourceDiscoveryId(value){cdk().traceProperty(this.node,"IpamResourceDiscoveryId"),this._ipamResourceDiscoveryId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrIpamArn(){return cdk().Token.asString(this.getAtt("IpamArn",cdk().ResolutionTypeHint.STRING))}get attrIpamRegion(){return cdk().Token.asString(this.getAtt("IpamRegion",cdk().ResolutionTypeHint.STRING))}get attrIpamResourceDiscoveryAssociationArn(){return cdk().Token.asString(this.getAtt("IpamResourceDiscoveryAssociationArn",cdk().ResolutionTypeHint.STRING))}get attrIpamResourceDiscoveryAssociationId(){return cdk().Token.asString(this.getAtt("IpamResourceDiscoveryAssociationId",cdk().ResolutionTypeHint.STRING))}get attrIsDefault(){return this.getAtt("IsDefault")}get attrOwnerId(){return cdk().Token.asString(this.getAtt("OwnerId",cdk().ResolutionTypeHint.STRING))}get attrResourceDiscoveryStatus(){return cdk().Token.asString(this.getAtt("ResourceDiscoveryStatus",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{ipamId:this._ipamId,ipamResourceDiscoveryId:this._ipamResourceDiscoveryId,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",CfnIPAMResourceDiscoveryAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnIPAMResourceDiscoveryAssociationPropsToCloudFormation(props)}}exports.CfnIPAMResourceDiscoveryAssociation=CfnIPAMResourceDiscoveryAssociation;function CfnIPAMResourceDiscoveryAssociationPropsValidator(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("ipamId",cdk().requiredValidator)(properties.ipamId)),errors.collect(cdk().propertyValidator("ipamId",cdk().validateString)(properties.ipamId)),errors.collect(cdk().propertyValidator("ipamResourceDiscoveryId",cdk().requiredValidator)(properties.ipamResourceDiscoveryId)),errors.collect(cdk().propertyValidator("ipamResourceDiscoveryId",cdk().validateString)(properties.ipamResourceDiscoveryId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPAMResourceDiscoveryAssociationProps"')}function convertCfnIPAMResourceDiscoveryAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMResourceDiscoveryAssociationPropsValidator(properties).assertSuccess(),{IpamId:cdk().stringToCloudFormation(properties.ipamId),IpamResourceDiscoveryId:cdk().stringToCloudFormation(properties.ipamResourceDiscoveryId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPAMResourceDiscoveryAssociationPropsFromCloudFormation(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("ipamId","IpamId",properties.IpamId!=null?cfn_parse().FromCloudFormation.getString(properties.IpamId):void 0),ret.addPropertyResult("ipamResourceDiscoveryId","IpamResourceDiscoveryId",properties.IpamResourceDiscoveryId!=null?cfn_parse().FromCloudFormation.getString(properties.IpamResourceDiscoveryId):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 CfnIPAMScope extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMScope",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMScope";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMScopePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnIPAMScope(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 isCfnIPAMScope(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnIPAMScope.CFN_RESOURCE_TYPE_NAME}static fromIPAMScopeArn(scope,id,arn){class Import extends cdk().Resource{ipamScopeRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-scope/${IpamScopeId}").parse(arn2);this.ipamScopeRef={ipamScopeId:variables.IpamScopeId,ipamScopeArn:arn2}}}return new Import(scope,id,arn)}static fromIpamScopeId(scope,id,ipamScopeId){class Import extends cdk().Resource{ipamScopeRef;constructor(scope2,id2,ipamScopeId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-scope/${IpamScopeId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,IpamScopeId:ipamScopeId2});super(scope2,id2,{environmentFromArn:arn}),this.ipamScopeRef={ipamScopeId:ipamScopeId2,ipamScopeArn:arn}}}return new Import(scope,id,ipamScopeId)}static arnForIPAMScope(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IIPAMScopeRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForIPAMScope),error}return resource.ipamScopeRef.ipamScopeArn}_description;_externalAuthorityConfiguration;_ipamId;tags;_tagsRaw;cfnPropertyNames={description:"Description",externalAuthorityConfiguration:"ExternalAuthorityConfiguration",ipamId:"IpamId",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnIPAMScope.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnIPAMScopeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMScope),error}cdk().requireProperty(props,"ipamId",this),this._description=props.description,this._externalAuthorityConfiguration=props.externalAuthorityConfiguration,this._ipamId=props.ipamId,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::IPAMScope",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get ipamScopeRef(){return{ipamScopeId:this.ref,ipamScopeArn:this.attrArn}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get externalAuthorityConfiguration(){return this._externalAuthorityConfiguration}set externalAuthorityConfiguration(value){cdk().traceProperty(this.node,"ExternalAuthorityConfiguration"),this._externalAuthorityConfiguration=value}get ipamId(){return this._ipamId}set ipamId(value){cdk().traceProperty(this.node,"IpamId"),this._ipamId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrIpamArn(){return cdk().Token.asString(this.getAtt("IpamArn",cdk().ResolutionTypeHint.STRING))}get attrIpamScopeId(){return cdk().Token.asString(this.getAtt("IpamScopeId",cdk().ResolutionTypeHint.STRING))}get attrIpamScopeType(){return cdk().Token.asString(this.getAtt("IpamScopeType",cdk().ResolutionTypeHint.STRING))}get attrIsDefault(){return this.getAtt("IsDefault")}get attrPoolCount(){return cdk().Token.asNumber(this.getAtt("PoolCount",cdk().ResolutionTypeHint.NUMBER))}get cfnProperties(){return{description:this._description,externalAuthorityConfiguration:this._externalAuthorityConfiguration,ipamId:this._ipamId,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",CfnIPAMScope.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnIPAMScopePropsToCloudFormation(props)}}exports.CfnIPAMScope=CfnIPAMScope;function CfnIPAMScopeIpamScopeExternalAuthorityConfigurationPropertyValidator(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("externalResourceIdentifier",cdk().requiredValidator)(properties.externalResourceIdentifier)),errors.collect(cdk().propertyValidator("externalResourceIdentifier",cdk().validateString)(properties.externalResourceIdentifier)),errors.collect(cdk().propertyValidator("ipamScopeExternalAuthorityType",cdk().requiredValidator)(properties.ipamScopeExternalAuthorityType)),errors.collect(cdk().propertyValidator("ipamScopeExternalAuthorityType",cdk().validateString)(properties.ipamScopeExternalAuthorityType)),errors.wrap('supplied properties not correct for "IpamScopeExternalAuthorityConfigurationProperty"')}function convertCfnIPAMScopeIpamScopeExternalAuthorityConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMScopeIpamScopeExternalAuthorityConfigurationPropertyValidator(properties).assertSuccess(),{ExternalResourceIdentifier:cdk().stringToCloudFormation(properties.externalResourceIdentifier),IpamScopeExternalAuthorityType:cdk().stringToCloudFormation(properties.ipamScopeExternalAuthorityType)}):properties}function CfnIPAMScopeIpamScopeExternalAuthorityConfigurationPropertyFromCloudFormation(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("externalResourceIdentifier","ExternalResourceIdentifier",properties.ExternalResourceIdentifier!=null?cfn_parse().FromCloudFormation.getString(properties.ExternalResourceIdentifier):void 0),ret.addPropertyResult("ipamScopeExternalAuthorityType","IpamScopeExternalAuthorityType",properties.IpamScopeExternalAuthorityType!=null?cfn_parse().FromCloudFormation.getString(properties.IpamScopeExternalAuthorityType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMScopePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("externalAuthorityConfiguration",CfnIPAMScopeIpamScopeExternalAuthorityConfigurationPropertyValidator)(properties.externalAuthorityConfiguration)),errors.collect(cdk().propertyValidator("ipamId",cdk().requiredValidator)(properties.ipamId)),errors.collect(cdk().propertyValidator("ipamId",cdk().validateString)(properties.ipamId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPAMScopeProps"')}function convertCfnIPAMScopePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMScopePropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),ExternalAuthorityConfiguration:convertCfnIPAMScopeIpamScopeExternalAuthorityConfigurationPropertyToCloudFormation(properties.externalAuthorityConfiguration),IpamId:cdk().stringToCloudFormation(properties.ipamId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPAMScopePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("externalAuthorityConfiguration","ExternalAuthorityConfiguration",properties.ExternalAuthorityConfiguration!=null?CfnIPAMScopeIpamScopeExternalAuthorityConfigurationPropertyFromCloudFormation(properties.ExternalAuthorityConfiguration):void 0),ret.addPropertyResult("ipamId","IpamId",properties.IpamId!=null?cfn_parse().FromCloudFormation.getString(properties.IpamId):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_ec2.CfnInstance",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::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 fromInstanceId(scope,id,instanceId){class Import extends cdk().Resource{instanceRef;constructor(scope2,id2,instanceId2){super(scope2,id2),this.instanceRef={instanceId:instanceId2}}}return new Import(scope,id,instanceId)}static arnForInstance(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IInstanceRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForInstance),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:instance/${InstanceId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,InstanceId:resource.instanceRef.instanceId})}_additionalInfo;_affinity;_availabilityZone;_blockDeviceMappings;_cpuOptions;_creditSpecification;_disableApiTermination;_ebsOptimized;_elasticGpuSpecifications;_elasticInferenceAccelerators;_enclaveOptions;_hibernationOptions;_hostId;_hostResourceGroupArn;_iamInstanceProfile;_imageId;_instanceInitiatedShutdownBehavior;_instanceType;_ipv6AddressCount;_ipv6Addresses;_kernelId;_keyName;_launchTemplate;_licenseSpecifications;_metadataOptions;_monitoring;_networkInterfaces;_placementGroupName;_privateDnsNameOptions;_privateIpAddress;_propagateTagsToVolumeOnCreation;_ramdiskId;_securityGroupIds;_securityGroups;_sourceDestCheck;_ssmAssociations;_subnetId;tags;_tagsRaw;_tenancy;_userData;_volumes;cfnPropertyNames={additionalInfo:"AdditionalInfo",affinity:"Affinity",availabilityZone:"AvailabilityZone",blockDeviceMappings:"BlockDeviceMappings",cpuOptions:"CpuOptions",creditSpecification:"CreditSpecification",disableApiTermination:"DisableApiTermination",ebsOptimized:"EbsOptimized",elasticGpuSpecifications:"ElasticGpuSpecifications",elasticInferenceAccelerators:"ElasticInferenceAccelerators",enclaveOptions:"EnclaveOptions",hibernationOptions:"HibernationOptions",hostId:"HostId",hostResourceGroupArn:"HostResourceGroupArn",iamInstanceProfile:"IamInstanceProfile",imageId:"ImageId",instanceInitiatedShutdownBehavior:"InstanceInitiatedShutdownBehavior",instanceType:"InstanceType",ipv6AddressCount:"Ipv6AddressCount",ipv6Addresses:"Ipv6Addresses",kernelId:"KernelId",keyName:"KeyName",launchTemplate:"LaunchTemplate",licenseSpecifications:"LicenseSpecifications",metadataOptions:"MetadataOptions",monitoring:"Monitoring",networkInterfaces:"NetworkInterfaces",placementGroupName:"PlacementGroupName",privateDnsNameOptions:"PrivateDnsNameOptions",privateIpAddress:"PrivateIpAddress",propagateTagsToVolumeOnCreation:"PropagateTagsToVolumeOnCreation",ramdiskId:"RamdiskId",securityGroupIds:"SecurityGroupIds",securityGroups:"SecurityGroups",sourceDestCheck:"SourceDestCheck",ssmAssociations:"SsmAssociations",subnetId:"SubnetId",tags:"Tags",tenancy:"Tenancy",userData:"UserData",volumes:"Volumes"};constructor(scope,id,props={}){super(scope,id,{type:CfnInstance.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnInstanceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInstance),error}this._additionalInfo=props.additionalInfo,this._affinity=props.affinity,this._availabilityZone=props.availabilityZone,this._blockDeviceMappings=props.blockDeviceMappings,this._cpuOptions=props.cpuOptions,this._creditSpecification=props.creditSpecification,this._disableApiTermination=props.disableApiTermination,this._ebsOptimized=props.ebsOptimized,this._elasticGpuSpecifications=props.elasticGpuSpecifications,this._elasticInferenceAccelerators=props.elasticInferenceAccelerators,this._enclaveOptions=props.enclaveOptions,this._hibernationOptions=props.hibernationOptions,this._hostId=cdk().getRefProperty(props.hostId?.hostRef,"hostId")??cdk().ensureStringOrUndefined(props.hostId,"hostId","ec2.IHostRef | string"),this._hostResourceGroupArn=props.hostResourceGroupArn,this._iamInstanceProfile=cdk().getRefProperty(props.iamInstanceProfile?.instanceProfileRef,"instanceProfileName")??cdk().ensureStringOrUndefined(props.iamInstanceProfile,"iamInstanceProfile","iam.IInstanceProfileRef | string"),this._imageId=props.imageId,this._instanceInitiatedShutdownBehavior=props.instanceInitiatedShutdownBehavior,this._instanceType=props.instanceType,this._ipv6AddressCount=props.ipv6AddressCount,this._ipv6Addresses=props.ipv6Addresses,this._kernelId=props.kernelId,this._keyName=props.keyName,this._launchTemplate=props.launchTemplate,this._licenseSpecifications=props.licenseSpecifications,this._metadataOptions=props.metadataOptions,this._monitoring=props.monitoring,this._networkInterfaces=props.networkInterfaces,this._placementGroupName=cdk().getRefProperty(props.placementGroupName?.placementGroupRef,"groupName")??cdk().ensureStringOrUndefined(props.placementGroupName,"placementGroupName","ec2.IPlacementGroupRef | string"),this._privateDnsNameOptions=props.privateDnsNameOptions,this._privateIpAddress=props.privateIpAddress,this._propagateTagsToVolumeOnCreation=props.propagateTagsToVolumeOnCreation,this._ramdiskId=props.ramdiskId,this._securityGroupIds=cdk().mapArrayInPlace(props.securityGroupIds,item=>cdk().getRefProperty(item?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(item,"securityGroupIds","ec2.ISecurityGroupRef | string")),this._securityGroups=props.securityGroups,this._sourceDestCheck=props.sourceDestCheck,this._ssmAssociations=props.ssmAssociations,this._subnetId=cdk().getRefProperty(props.subnetId?.subnetRef,"subnetId")??cdk().ensureStringOrUndefined(props.subnetId,"subnetId","ec2.ISubnetRef | string"),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::Instance",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._tenancy=props.tenancy,this._userData=props.userData,this._volumes=props.volumes}get instanceRef(){return{instanceId:this.ref}}get additionalInfo(){return this._additionalInfo}set additionalInfo(value){cdk().traceProperty(this.node,"AdditionalInfo"),this._additionalInfo=value}get affinity(){return this._affinity}set affinity(value){cdk().traceProperty(this.node,"Affinity"),this._affinity=value}get availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get blockDeviceMappings(){return this._blockDeviceMappings}set blockDeviceMappings(value){cdk().traceProperty(this.node,"BlockDeviceMappings"),this._blockDeviceMappings=value}get cpuOptions(){return this._cpuOptions}set cpuOptions(value){cdk().traceProperty(this.node,"CpuOptions"),this._cpuOptions=value}get creditSpecification(){return this._creditSpecification}set creditSpecification(value){cdk().traceProperty(this.node,"CreditSpecification"),this._creditSpecification=value}get disableApiTermination(){return this._disableApiTermination}set disableApiTermination(value){cdk().traceProperty(this.node,"DisableApiTermination"),this._disableApiTermination=value}get ebsOptimized(){return this._ebsOptimized}set ebsOptimized(value){cdk().traceProperty(this.node,"EbsOptimized"),this._ebsOptimized=value}get elasticGpuSpecifications(){return this._elasticGpuSpecifications}set elasticGpuSpecifications(value){cdk().traceProperty(this.node,"ElasticGpuSpecifications"),this._elasticGpuSpecifications=value}get elasticInferenceAccelerators(){return this._elasticInferenceAccelerators}set elasticInferenceAccelerators(value){cdk().traceProperty(this.node,"ElasticInferenceAccelerators"),this._elasticInferenceAccelerators=value}get enclaveOptions(){return this._enclaveOptions}set enclaveOptions(value){cdk().traceProperty(this.node,"EnclaveOptions"),this._enclaveOptions=value}get hibernationOptions(){return this._hibernationOptions}set hibernationOptions(value){cdk().traceProperty(this.node,"HibernationOptions"),this._hibernationOptions=value}get hostId(){return this._hostId}set hostId(value){cdk().traceProperty(this.node,"HostId"),this._hostId=value}get hostResourceGroupArn(){return this._hostResourceGroupArn}set hostResourceGroupArn(value){cdk().traceProperty(this.node,"HostResourceGroupArn"),this._hostResourceGroupArn=value}get iamInstanceProfile(){return this._iamInstanceProfile}set iamInstanceProfile(value){cdk().traceProperty(this.node,"IamInstanceProfile"),this._iamInstanceProfile=value}get imageId(){return this._imageId}set imageId(value){cdk().traceProperty(this.node,"ImageId"),this._imageId=value}get instanceInitiatedShutdownBehavior(){return this._instanceInitiatedShutdownBehavior}set instanceInitiatedShutdownBehavior(value){cdk().traceProperty(this.node,"InstanceInitiatedShutdownBehavior"),this._instanceInitiatedShutdownBehavior=value}get instanceType(){return this._instanceType}set instanceType(value){cdk().traceProperty(this.node,"InstanceType"),this._instanceType=value}get ipv6AddressCount(){return this._ipv6AddressCount}set ipv6AddressCount(value){cdk().traceProperty(this.node,"Ipv6AddressCount"),this._ipv6AddressCount=value}get ipv6Addresses(){return this._ipv6Addresses}set ipv6Addresses(value){cdk().traceProperty(this.node,"Ipv6Addresses"),this._ipv6Addresses=value}get kernelId(){return this._kernelId}set kernelId(value){cdk().traceProperty(this.node,"KernelId"),this._kernelId=value}get keyName(){return this._keyName}set keyName(value){cdk().traceProperty(this.node,"KeyName"),this._keyName=value}get launchTemplate(){return this._launchTemplate}set launchTemplate(value){cdk().traceProperty(this.node,"LaunchTemplate"),this._launchTemplate=value}get licenseSpecifications(){return this._licenseSpecifications}set licenseSpecifications(value){cdk().traceProperty(this.node,"LicenseSpecifications"),this._licenseSpecifications=value}get metadataOptions(){return this._metadataOptions}set metadataOptions(value){cdk().traceProperty(this.node,"MetadataOptions"),this._metadataOptions=value}get monitoring(){return this._monitoring}set monitoring(value){cdk().traceProperty(this.node,"Monitoring"),this._monitoring=value}get networkInterfaces(){return this._networkInterfaces}set networkInterfaces(value){cdk().traceProperty(this.node,"NetworkInterfaces"),this._networkInterfaces=value}get placementGroupName(){return this._placementGroupName}set placementGroupName(value){cdk().traceProperty(this.node,"PlacementGroupName"),this._placementGroupName=value}get privateDnsNameOptions(){return this._privateDnsNameOptions}set privateDnsNameOptions(value){cdk().traceProperty(this.node,"PrivateDnsNameOptions"),this._privateDnsNameOptions=value}get privateIpAddress(){return this._privateIpAddress}set privateIpAddress(value){cdk().traceProperty(this.node,"PrivateIpAddress"),this._privateIpAddress=value}get propagateTagsToVolumeOnCreation(){return this._propagateTagsToVolumeOnCreation}set propagateTagsToVolumeOnCreation(value){cdk().traceProperty(this.node,"PropagateTagsToVolumeOnCreation"),this._propagateTagsToVolumeOnCreation=value}get ramdiskId(){return this._ramdiskId}set ramdiskId(value){cdk().traceProperty(this.node,"RamdiskId"),this._ramdiskId=value}get securityGroupIds(){return this._securityGroupIds}set securityGroupIds(value){cdk().traceProperty(this.node,"SecurityGroupIds"),this._securityGroupIds=value}get securityGroups(){return this._securityGroups}set securityGroups(value){cdk().traceProperty(this.node,"SecurityGroups"),this._securityGroups=value}get sourceDestCheck(){return this._sourceDestCheck}set sourceDestCheck(value){cdk().traceProperty(this.node,"SourceDestCheck"),this._sourceDestCheck=value}get ssmAssociations(){return this._ssmAssociations}set ssmAssociations(value){cdk().traceProperty(this.node,"SsmAssociations"),this._ssmAssociations=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get tenancy(){return this._tenancy}set tenancy(value){cdk().traceProperty(this.node,"Tenancy"),this._tenancy=value}get userData(){return this._userData}set userData(value){cdk().traceProperty(this.node,"UserData"),this._userData=value}get volumes(){return this._volumes}set volumes(value){cdk().traceProperty(this.node,"Volumes"),this._volumes=value}get attrAvailabilityZone(){return cdk().Token.asString(this.getAtt("AvailabilityZone",cdk().ResolutionTypeHint.STRING))}get attrInstanceId(){return cdk().Token.asString(this.getAtt("InstanceId",cdk().ResolutionTypeHint.STRING))}get attrPrivateDnsName(){return cdk().Token.asString(this.getAtt("PrivateDnsName",cdk().ResolutionTypeHint.STRING))}get attrPrivateIp(){return cdk().Token.asString(this.getAtt("PrivateIp",cdk().ResolutionTypeHint.STRING))}get attrPublicDnsName(){return cdk().Token.asString(this.getAtt("PublicDnsName",cdk().ResolutionTypeHint.STRING))}get attrPublicIp(){return cdk().Token.asString(this.getAtt("PublicIp",cdk().ResolutionTypeHint.STRING))}get attrState(){return this.getAtt("State")}get attrVpcId(){return cdk().Token.asString(this.getAtt("VpcId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{additionalInfo:this._additionalInfo,affinity:this._affinity,availabilityZone:this._availabilityZone,blockDeviceMappings:this._blockDeviceMappings,cpuOptions:this._cpuOptions,creditSpecification:this._creditSpecification,disableApiTermination:this._disableApiTermination,ebsOptimized:this._ebsOptimized,elasticGpuSpecifications:this._elasticGpuSpecifications,elasticInferenceAccelerators:this._elasticInferenceAccelerators,enclaveOptions:this._enclaveOptions,hibernationOptions:this._hibernationOptions,hostId:this._hostId,hostResourceGroupArn:this._hostResourceGroupArn,iamInstanceProfile:this._iamInstanceProfile,imageId:this._imageId,instanceInitiatedShutdownBehavior:this._instanceInitiatedShutdownBehavior,instanceType:this._instanceType,ipv6AddressCount:this._ipv6AddressCount,ipv6Addresses:this._ipv6Addresses,kernelId:this._kernelId,keyName:this._keyName,launchTemplate:this._launchTemplate,licenseSpecifications:this._licenseSpecifications,metadataOptions:this._metadataOptions,monitoring:this._monitoring,networkInterfaces:this._networkInterfaces,placementGroupName:this._placementGroupName,privateDnsNameOptions:this._privateDnsNameOptions,privateIpAddress:this._privateIpAddress,propagateTagsToVolumeOnCreation:this._propagateTagsToVolumeOnCreation,ramdiskId:this._ramdiskId,securityGroupIds:this._securityGroupIds,securityGroups:this._securityGroups,sourceDestCheck:this._sourceDestCheck,ssmAssociations:this._ssmAssociations,subnetId:this._subnetId,tags:this.tags.renderTags(),tenancy:this._tenancy,userData:this._userData,volumes:this._volumes}}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 CfnInstanceEbsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.collect(cdk().propertyValidator("iops",cdk().validateNumber)(properties.iops)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("snapshotId",cdk().validateString)(properties.snapshotId)),errors.collect(cdk().propertyValidator("volumeSize",cdk().validateNumber)(properties.volumeSize)),errors.collect(cdk().propertyValidator("volumeType",cdk().validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsProperty"')}function convertCfnInstanceEbsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceEbsPropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk().booleanToCloudFormation(properties.encrypted),Iops:cdk().numberToCloudFormation(properties.iops),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),SnapshotId:cdk().stringToCloudFormation(properties.snapshotId),VolumeSize:cdk().numberToCloudFormation(properties.volumeSize),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnInstanceEbsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse().FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceNoDevicePropertyValidator(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.wrap('supplied properties not correct for "NoDeviceProperty"')}function convertCfnInstanceNoDevicePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceNoDevicePropertyValidator(properties).assertSuccess(),{}):properties}function CfnInstanceNoDevicePropertyFromCloudFormation(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.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceBlockDeviceMappingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deviceName",cdk().requiredValidator)(properties.deviceName)),errors.collect(cdk().propertyValidator("deviceName",cdk().validateString)(properties.deviceName)),errors.collect(cdk().propertyValidator("ebs",CfnInstanceEbsPropertyValidator)(properties.ebs)),errors.collect(cdk().propertyValidator("noDevice",CfnInstanceNoDevicePropertyValidator)(properties.noDevice)),errors.collect(cdk().propertyValidator("virtualName",cdk().validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "BlockDeviceMappingProperty"')}function convertCfnInstanceBlockDeviceMappingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceBlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk().stringToCloudFormation(properties.deviceName),Ebs:convertCfnInstanceEbsPropertyToCloudFormation(properties.ebs),NoDevice:convertCfnInstanceNoDevicePropertyToCloudFormation(properties.noDevice),VirtualName:cdk().stringToCloudFormation(properties.virtualName)}):properties}function CfnInstanceBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",properties.DeviceName!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceName):void 0),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnInstanceEbsPropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?CfnInstanceNoDevicePropertyFromCloudFormation(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse().FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceCpuOptionsPropertyValidator(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("coreCount",cdk().validateNumber)(properties.coreCount)),errors.collect(cdk().propertyValidator("threadsPerCore",cdk().validateNumber)(properties.threadsPerCore)),errors.wrap('supplied properties not correct for "CpuOptionsProperty"')}function convertCfnInstanceCpuOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceCpuOptionsPropertyValidator(properties).assertSuccess(),{CoreCount:cdk().numberToCloudFormation(properties.coreCount),ThreadsPerCore:cdk().numberToCloudFormation(properties.threadsPerCore)}):properties}function CfnInstanceCpuOptionsPropertyFromCloudFormation(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("coreCount","CoreCount",properties.CoreCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.CoreCount):void 0),ret.addPropertyResult("threadsPerCore","ThreadsPerCore",properties.ThreadsPerCore!=null?cfn_parse().FromCloudFormation.getNumber(properties.ThreadsPerCore):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceCreditSpecificationPropertyValidator(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("cpuCredits",cdk().validateString)(properties.cpuCredits)),errors.wrap('supplied properties not correct for "CreditSpecificationProperty"')}function convertCfnInstanceCreditSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceCreditSpecificationPropertyValidator(properties).assertSuccess(),{CPUCredits:cdk().stringToCloudFormation(properties.cpuCredits)}):properties}function CfnInstanceCreditSpecificationPropertyFromCloudFormation(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("cpuCredits","CPUCredits",properties.CPUCredits!=null?cfn_parse().FromCloudFormation.getString(properties.CPUCredits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceElasticGpuSpecificationPropertyValidator(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("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "ElasticGpuSpecificationProperty"')}function convertCfnInstanceElasticGpuSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceElasticGpuSpecificationPropertyValidator(properties).assertSuccess(),{Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnInstanceElasticGpuSpecificationPropertyFromCloudFormation(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("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceElasticInferenceAcceleratorPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("count",cdk().validateNumber)(properties.count)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "ElasticInferenceAcceleratorProperty"')}function convertCfnInstanceElasticInferenceAcceleratorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceElasticInferenceAcceleratorPropertyValidator(properties).assertSuccess(),{Count:cdk().numberToCloudFormation(properties.count),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnInstanceElasticInferenceAcceleratorPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse().FromCloudFormation.getNumber(properties.Count):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceEnclaveOptionsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "EnclaveOptionsProperty"')}function convertCfnInstanceEnclaveOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceEnclaveOptionsPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnInstanceEnclaveOptionsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceHibernationOptionsPropertyValidator(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("configured",cdk().validateBoolean)(properties.configured)),errors.wrap('supplied properties not correct for "HibernationOptionsProperty"')}function convertCfnInstanceHibernationOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceHibernationOptionsPropertyValidator(properties).assertSuccess(),{Configured:cdk().booleanToCloudFormation(properties.configured)}):properties}function CfnInstanceHibernationOptionsPropertyFromCloudFormation(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("configured","Configured",properties.Configured!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Configured):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceInstanceIpv6AddressPropertyValidator(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("ipv6Address",cdk().requiredValidator)(properties.ipv6Address)),errors.collect(cdk().propertyValidator("ipv6Address",cdk().validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "InstanceIpv6AddressProperty"')}function convertCfnInstanceInstanceIpv6AddressPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceInstanceIpv6AddressPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk().stringToCloudFormation(properties.ipv6Address)}):properties}function CfnInstanceInstanceIpv6AddressPropertyFromCloudFormation(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("ipv6Address","Ipv6Address",properties.Ipv6Address!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6Address):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceLaunchTemplateSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("launchTemplateId",cdk().validateString)(properties.launchTemplateId)),errors.collect(cdk().propertyValidator("launchTemplateName",cdk().validateString)(properties.launchTemplateName)),errors.collect(cdk().propertyValidator("version",cdk().requiredValidator)(properties.version)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.wrap('supplied properties not correct for "LaunchTemplateSpecificationProperty"')}function convertCfnInstanceLaunchTemplateSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceLaunchTemplateSpecificationPropertyValidator(properties).assertSuccess(),{LaunchTemplateId:cdk().stringToCloudFormation(properties.launchTemplateId),LaunchTemplateName:cdk().stringToCloudFormation(properties.launchTemplateName),Version:cdk().stringToCloudFormation(properties.version)}):properties}function CfnInstanceLaunchTemplateSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceLicenseSpecificationPropertyValidator(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("licenseConfigurationArn",cdk().requiredValidator)(properties.licenseConfigurationArn)),errors.collect(cdk().propertyValidator("licenseConfigurationArn",cdk().validateString)(properties.licenseConfigurationArn)),errors.wrap('supplied properties not correct for "LicenseSpecificationProperty"')}function convertCfnInstanceLicenseSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceLicenseSpecificationPropertyValidator(properties).assertSuccess(),{LicenseConfigurationArn:cdk().stringToCloudFormation(properties.licenseConfigurationArn)}):properties}function CfnInstanceLicenseSpecificationPropertyFromCloudFormation(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("licenseConfigurationArn","LicenseConfigurationArn",properties.LicenseConfigurationArn!=null?cfn_parse().FromCloudFormation.getString(properties.LicenseConfigurationArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstancePrivateIpAddressSpecificationPropertyValidator(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("primary",cdk().requiredValidator)(properties.primary)),errors.collect(cdk().propertyValidator("primary",cdk().validateBoolean)(properties.primary)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().requiredValidator)(properties.privateIpAddress)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddressSpecificationProperty"')}function convertCfnInstancePrivateIpAddressSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstancePrivateIpAddressSpecificationPropertyValidator(properties).assertSuccess(),{Primary:cdk().booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnInstancePrivateIpAddressSpecificationPropertyFromCloudFormation(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("primary","Primary",properties.Primary!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Primary):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceEnaSrdUdpSpecificationPropertyValidator(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("enaSrdUdpEnabled",cdk().validateBoolean)(properties.enaSrdUdpEnabled)),errors.wrap('supplied properties not correct for "EnaSrdUdpSpecificationProperty"')}function convertCfnInstanceEnaSrdUdpSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceEnaSrdUdpSpecificationPropertyValidator(properties).assertSuccess(),{EnaSrdUdpEnabled:cdk().booleanToCloudFormation(properties.enaSrdUdpEnabled)}):properties}function CfnInstanceEnaSrdUdpSpecificationPropertyFromCloudFormation(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("enaSrdUdpEnabled","EnaSrdUdpEnabled",properties.EnaSrdUdpEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnaSrdUdpEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceEnaSrdSpecificationPropertyValidator(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("enaSrdEnabled",cdk().validateBoolean)(properties.enaSrdEnabled)),errors.collect(cdk().propertyValidator("enaSrdUdpSpecification",CfnInstanceEnaSrdUdpSpecificationPropertyValidator)(properties.enaSrdUdpSpecification)),errors.wrap('supplied properties not correct for "EnaSrdSpecificationProperty"')}function convertCfnInstanceEnaSrdSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceEnaSrdSpecificationPropertyValidator(properties).assertSuccess(),{EnaSrdEnabled:cdk().booleanToCloudFormation(properties.enaSrdEnabled),EnaSrdUdpSpecification:convertCfnInstanceEnaSrdUdpSpecificationPropertyToCloudFormation(properties.enaSrdUdpSpecification)}):properties}function CfnInstanceEnaSrdSpecificationPropertyFromCloudFormation(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("enaSrdEnabled","EnaSrdEnabled",properties.EnaSrdEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnaSrdEnabled):void 0),ret.addPropertyResult("enaSrdUdpSpecification","EnaSrdUdpSpecification",properties.EnaSrdUdpSpecification!=null?CfnInstanceEnaSrdUdpSpecificationPropertyFromCloudFormation(properties.EnaSrdUdpSpecification):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceNetworkInterfacePropertyValidator(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("associateCarrierIpAddress",cdk().validateBoolean)(properties.associateCarrierIpAddress)),errors.collect(cdk().propertyValidator("associatePublicIpAddress",cdk().validateBoolean)(properties.associatePublicIpAddress)),errors.collect(cdk().propertyValidator("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("deviceIndex",cdk().requiredValidator)(properties.deviceIndex)),errors.collect(cdk().propertyValidator("deviceIndex",cdk().validateString)(properties.deviceIndex)),errors.collect(cdk().propertyValidator("enaSrdSpecification",CfnInstanceEnaSrdSpecificationPropertyValidator)(properties.enaSrdSpecification)),errors.collect(cdk().propertyValidator("groupSet",cdk().listValidator(cdk().validateString))(properties.groupSet)),errors.collect(cdk().propertyValidator("ipv6AddressCount",cdk().validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk().propertyValidator("ipv6Addresses",cdk().listValidator(CfnInstanceInstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.collect(cdk().propertyValidator("privateIpAddresses",cdk().listValidator(CfnInstancePrivateIpAddressSpecificationPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk().propertyValidator("secondaryPrivateIpAddressCount",cdk().validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "NetworkInterfaceProperty"')}function convertCfnInstanceNetworkInterfacePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceNetworkInterfacePropertyValidator(properties).assertSuccess(),{AssociateCarrierIpAddress:cdk().booleanToCloudFormation(properties.associateCarrierIpAddress),AssociatePublicIpAddress:cdk().booleanToCloudFormation(properties.associatePublicIpAddress),DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),Description:cdk().stringToCloudFormation(properties.description),DeviceIndex:cdk().stringToCloudFormation(properties.deviceIndex),EnaSrdSpecification:convertCfnInstanceEnaSrdSpecificationPropertyToCloudFormation(properties.enaSrdSpecification),GroupSet:cdk().listMapper(cdk().stringToCloudFormation)(properties.groupSet),Ipv6AddressCount:cdk().numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk().listMapper(convertCfnInstanceInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress),PrivateIpAddresses:cdk().listMapper(convertCfnInstancePrivateIpAddressSpecificationPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk().numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnInstanceNetworkInterfacePropertyFromCloudFormation(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("associateCarrierIpAddress","AssociateCarrierIpAddress",properties.AssociateCarrierIpAddress!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AssociateCarrierIpAddress):void 0),ret.addPropertyResult("associatePublicIpAddress","AssociatePublicIpAddress",properties.AssociatePublicIpAddress!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AssociatePublicIpAddress):void 0),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceIndex","DeviceIndex",properties.DeviceIndex!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceIndex):void 0),ret.addPropertyResult("enaSrdSpecification","EnaSrdSpecification",properties.EnaSrdSpecification!=null?CfnInstanceEnaSrdSpecificationPropertyFromCloudFormation(properties.EnaSrdSpecification):void 0),ret.addPropertyResult("groupSet","GroupSet",properties.GroupSet!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.GroupSet):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse().FromCloudFormation.getArray(CfnInstancePrivateIpAddressSpecificationPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstancePrivateDnsNameOptionsPropertyValidator(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("enableResourceNameDnsAaaaRecord",cdk().validateBoolean)(properties.enableResourceNameDnsAaaaRecord)),errors.collect(cdk().propertyValidator("enableResourceNameDnsARecord",cdk().validateBoolean)(properties.enableResourceNameDnsARecord)),errors.collect(cdk().propertyValidator("hostnameType",cdk().validateString)(properties.hostnameType)),errors.wrap('supplied properties not correct for "PrivateDnsNameOptionsProperty"')}function convertCfnInstancePrivateDnsNameOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstancePrivateDnsNameOptionsPropertyValidator(properties).assertSuccess(),{EnableResourceNameDnsAAAARecord:cdk().booleanToCloudFormation(properties.enableResourceNameDnsAaaaRecord),EnableResourceNameDnsARecord:cdk().booleanToCloudFormation(properties.enableResourceNameDnsARecord),HostnameType:cdk().stringToCloudFormation(properties.hostnameType)}):properties}function CfnInstancePrivateDnsNameOptionsPropertyFromCloudFormation(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("enableResourceNameDnsAaaaRecord","EnableResourceNameDnsAAAARecord",properties.EnableResourceNameDnsAAAARecord!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableResourceNameDnsAAAARecord):void 0),ret.addPropertyResult("enableResourceNameDnsARecord","EnableResourceNameDnsARecord",properties.EnableResourceNameDnsARecord!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableResourceNameDnsARecord):void 0),ret.addPropertyResult("hostnameType","HostnameType",properties.HostnameType!=null?cfn_parse().FromCloudFormation.getString(properties.HostnameType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceAssociationParameterPropertyValidator(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("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("value",cdk().requiredValidator)(properties.value)),errors.collect(cdk().propertyValidator("value",cdk().listValidator(cdk().validateString))(properties.value)),errors.wrap('supplied properties not correct for "AssociationParameterProperty"')}function convertCfnInstanceAssociationParameterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceAssociationParameterPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),Value:cdk().listMapper(cdk().stringToCloudFormation)(properties.value)}):properties}function CfnInstanceAssociationParameterPropertyFromCloudFormation(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("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceSsmAssociationPropertyValidator(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("associationParameters",cdk().listValidator(CfnInstanceAssociationParameterPropertyValidator))(properties.associationParameters)),errors.collect(cdk().propertyValidator("documentName",cdk().requiredValidator)(properties.documentName)),errors.collect(cdk().propertyValidator("documentName",cdk().validateString)(properties.documentName)),errors.wrap('supplied properties not correct for "SsmAssociationProperty"')}function convertCfnInstanceSsmAssociationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceSsmAssociationPropertyValidator(properties).assertSuccess(),{AssociationParameters:cdk().listMapper(convertCfnInstanceAssociationParameterPropertyToCloudFormation)(properties.associationParameters),DocumentName:cdk().stringToCloudFormation(properties.documentName)}):properties}function CfnInstanceSsmAssociationPropertyFromCloudFormation(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("associationParameters","AssociationParameters",properties.AssociationParameters!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceAssociationParameterPropertyFromCloudFormation)(properties.AssociationParameters):void 0),ret.addPropertyResult("documentName","DocumentName",properties.DocumentName!=null?cfn_parse().FromCloudFormation.getString(properties.DocumentName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceVolumePropertyValidator(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("device",cdk().requiredValidator)(properties.device)),errors.collect(cdk().propertyValidator("device",cdk().validateString)(properties.device)),errors.collect(cdk().propertyValidator("volumeId",cdk().requiredValidator)(properties.volumeId)),errors.collect(cdk().propertyValidator("volumeId",cdk().validateString)(properties.volumeId)),errors.wrap('supplied properties not correct for "VolumeProperty"')}function convertCfnInstanceVolumePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceVolumePropertyValidator(properties).assertSuccess(),{Device:cdk().stringToCloudFormation(properties.device),VolumeId:cdk().stringToCloudFormation(properties.volumeId)}):properties}function CfnInstanceVolumePropertyFromCloudFormation(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("device","Device",properties.Device!=null?cfn_parse().FromCloudFormation.getString(properties.Device):void 0),ret.addPropertyResult("volumeId","VolumeId",properties.VolumeId!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceMetadataOptionsPropertyValidator(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("httpEndpoint",cdk().validateString)(properties.httpEndpoint)),errors.collect(cdk().propertyValidator("httpProtocolIpv6",cdk().validateString)(properties.httpProtocolIpv6)),errors.collect(cdk().propertyValidator("httpPutResponseHopLimit",cdk().validateNumber)(properties.httpPutResponseHopLimit)),errors.collect(cdk().propertyValidator("httpTokens",cdk().validateString)(properties.httpTokens)),errors.collect(cdk().propertyValidator("instanceMetadataTags",cdk().validateString)(properties.instanceMetadataTags)),errors.wrap('supplied properties not correct for "MetadataOptionsProperty"')}function convertCfnInstanceMetadataOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceMetadataOptionsPropertyValidator(properties).assertSuccess(),{HttpEndpoint:cdk().stringToCloudFormation(properties.httpEndpoint),HttpProtocolIpv6:cdk().stringToCloudFormation(properties.httpProtocolIpv6),HttpPutResponseHopLimit:cdk().numberToCloudFormation(properties.httpPutResponseHopLimit),HttpTokens:cdk().stringToCloudFormation(properties.httpTokens),InstanceMetadataTags:cdk().stringToCloudFormation(properties.instanceMetadataTags)}):properties}function CfnInstanceMetadataOptionsPropertyFromCloudFormation(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("httpEndpoint","HttpEndpoint",properties.HttpEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.HttpEndpoint):void 0),ret.addPropertyResult("httpProtocolIpv6","HttpProtocolIpv6",properties.HttpProtocolIpv6!=null?cfn_parse().FromCloudFormation.getString(properties.HttpProtocolIpv6):void 0),ret.addPropertyResult("httpPutResponseHopLimit","HttpPutResponseHopLimit",properties.HttpPutResponseHopLimit!=null?cfn_parse().FromCloudFormation.getNumber(properties.HttpPutResponseHopLimit):void 0),ret.addPropertyResult("httpTokens","HttpTokens",properties.HttpTokens!=null?cfn_parse().FromCloudFormation.getString(properties.HttpTokens):void 0),ret.addPropertyResult("instanceMetadataTags","InstanceMetadataTags",properties.InstanceMetadataTags!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceMetadataTags):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().validateString)(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().stringToCloudFormation(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.getString(properties.Code):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):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("additionalInfo",cdk().validateString)(properties.additionalInfo)),errors.collect(cdk().propertyValidator("affinity",cdk().validateString)(properties.affinity)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("blockDeviceMappings",cdk().listValidator(CfnInstanceBlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk().propertyValidator("cpuOptions",CfnInstanceCpuOptionsPropertyValidator)(properties.cpuOptions)),errors.collect(cdk().propertyValidator("creditSpecification",CfnInstanceCreditSpecificationPropertyValidator)(properties.creditSpecification)),errors.collect(cdk().propertyValidator("disableApiTermination",cdk().validateBoolean)(properties.disableApiTermination)),errors.collect(cdk().propertyValidator("ebsOptimized",cdk().validateBoolean)(properties.ebsOptimized)),errors.collect(cdk().propertyValidator("elasticGpuSpecifications",cdk().listValidator(CfnInstanceElasticGpuSpecificationPropertyValidator))(properties.elasticGpuSpecifications)),errors.collect(cdk().propertyValidator("elasticInferenceAccelerators",cdk().listValidator(CfnInstanceElasticInferenceAcceleratorPropertyValidator))(properties.elasticInferenceAccelerators)),errors.collect(cdk().propertyValidator("enclaveOptions",CfnInstanceEnclaveOptionsPropertyValidator)(properties.enclaveOptions)),errors.collect(cdk().propertyValidator("hibernationOptions",CfnInstanceHibernationOptionsPropertyValidator)(properties.hibernationOptions)),errors.collect(cdk().propertyValidator("hostId",cdk().validateString)(properties.hostId)),errors.collect(cdk().propertyValidator("hostResourceGroupArn",cdk().validateString)(properties.hostResourceGroupArn)),errors.collect(cdk().propertyValidator("iamInstanceProfile",cdk().validateString)(properties.iamInstanceProfile)),errors.collect(cdk().propertyValidator("imageId",cdk().validateString)(properties.imageId)),errors.collect(cdk().propertyValidator("instanceInitiatedShutdownBehavior",cdk().validateString)(properties.instanceInitiatedShutdownBehavior)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("ipv6AddressCount",cdk().validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk().propertyValidator("ipv6Addresses",cdk().listValidator(CfnInstanceInstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk().propertyValidator("kernelId",cdk().validateString)(properties.kernelId)),errors.collect(cdk().propertyValidator("keyName",cdk().validateString)(properties.keyName)),errors.collect(cdk().propertyValidator("launchTemplate",CfnInstanceLaunchTemplateSpecificationPropertyValidator)(properties.launchTemplate)),errors.collect(cdk().propertyValidator("licenseSpecifications",cdk().listValidator(CfnInstanceLicenseSpecificationPropertyValidator))(properties.licenseSpecifications)),errors.collect(cdk().propertyValidator("metadataOptions",CfnInstanceMetadataOptionsPropertyValidator)(properties.metadataOptions)),errors.collect(cdk().propertyValidator("monitoring",cdk().validateBoolean)(properties.monitoring)),errors.collect(cdk().propertyValidator("networkInterfaces",cdk().listValidator(CfnInstanceNetworkInterfacePropertyValidator))(properties.networkInterfaces)),errors.collect(cdk().propertyValidator("placementGroupName",cdk().validateString)(properties.placementGroupName)),errors.collect(cdk().propertyValidator("privateDnsNameOptions",CfnInstancePrivateDnsNameOptionsPropertyValidator)(properties.privateDnsNameOptions)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.collect(cdk().propertyValidator("propagateTagsToVolumeOnCreation",cdk().validateBoolean)(properties.propagateTagsToVolumeOnCreation)),errors.collect(cdk().propertyValidator("ramdiskId",cdk().validateString)(properties.ramdiskId)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().listValidator(cdk().validateString))(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("securityGroups",cdk().listValidator(cdk().validateString))(properties.securityGroups)),errors.collect(cdk().propertyValidator("sourceDestCheck",cdk().validateBoolean)(properties.sourceDestCheck)),errors.collect(cdk().propertyValidator("ssmAssociations",cdk().listValidator(CfnInstanceSsmAssociationPropertyValidator))(properties.ssmAssociations)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("tenancy",cdk().validateString)(properties.tenancy)),errors.collect(cdk().propertyValidator("userData",cdk().validateString)(properties.userData)),errors.collect(cdk().propertyValidator("volumes",cdk().listValidator(CfnInstanceVolumePropertyValidator))(properties.volumes)),errors.wrap('supplied properties not correct for "CfnInstanceProps"')}function convertCfnInstancePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstancePropsValidator(properties).assertSuccess(),{AdditionalInfo:cdk().stringToCloudFormation(properties.additionalInfo),Affinity:cdk().stringToCloudFormation(properties.affinity),AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),BlockDeviceMappings:cdk().listMapper(convertCfnInstanceBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),CpuOptions:convertCfnInstanceCpuOptionsPropertyToCloudFormation(properties.cpuOptions),CreditSpecification:convertCfnInstanceCreditSpecificationPropertyToCloudFormation(properties.creditSpecification),DisableApiTermination:cdk().booleanToCloudFormation(properties.disableApiTermination),EbsOptimized:cdk().booleanToCloudFormation(properties.ebsOptimized),ElasticGpuSpecifications:cdk().listMapper(convertCfnInstanceElasticGpuSpecificationPropertyToCloudFormation)(properties.elasticGpuSpecifications),ElasticInferenceAccelerators:cdk().listMapper(convertCfnInstanceElasticInferenceAcceleratorPropertyToCloudFormation)(properties.elasticInferenceAccelerators),EnclaveOptions:convertCfnInstanceEnclaveOptionsPropertyToCloudFormation(properties.enclaveOptions),HibernationOptions:convertCfnInstanceHibernationOptionsPropertyToCloudFormation(properties.hibernationOptions),HostId:cdk().stringToCloudFormation(properties.hostId),HostResourceGroupArn:cdk().stringToCloudFormation(properties.hostResourceGroupArn),IamInstanceProfile:cdk().stringToCloudFormation(properties.iamInstanceProfile),ImageId:cdk().stringToCloudFormation(properties.imageId),InstanceInitiatedShutdownBehavior:cdk().stringToCloudFormation(properties.instanceInitiatedShutdownBehavior),InstanceType:cdk().stringToCloudFormation(properties.instanceType),Ipv6AddressCount:cdk().numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk().listMapper(convertCfnInstanceInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),KernelId:cdk().stringToCloudFormation(properties.kernelId),KeyName:cdk().stringToCloudFormation(properties.keyName),LaunchTemplate:convertCfnInstanceLaunchTemplateSpecificationPropertyToCloudFormation(properties.launchTemplate),LicenseSpecifications:cdk().listMapper(convertCfnInstanceLicenseSpecificationPropertyToCloudFormation)(properties.licenseSpecifications),MetadataOptions:convertCfnInstanceMetadataOptionsPropertyToCloudFormation(properties.metadataOptions),Monitoring:cdk().booleanToCloudFormation(properties.monitoring),NetworkInterfaces:cdk().listMapper(convertCfnInstanceNetworkInterfacePropertyToCloudFormation)(properties.networkInterfaces),PlacementGroupName:cdk().stringToCloudFormation(properties.placementGroupName),PrivateDnsNameOptions:convertCfnInstancePrivateDnsNameOptionsPropertyToCloudFormation(properties.privateDnsNameOptions),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress),PropagateTagsToVolumeOnCreation:cdk().booleanToCloudFormation(properties.propagateTagsToVolumeOnCreation),RamdiskId:cdk().stringToCloudFormation(properties.ramdiskId),SecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroupIds),SecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroups),SourceDestCheck:cdk().booleanToCloudFormation(properties.sourceDestCheck),SsmAssociations:cdk().listMapper(convertCfnInstanceSsmAssociationPropertyToCloudFormation)(properties.ssmAssociations),SubnetId:cdk().stringToCloudFormation(properties.subnetId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Tenancy:cdk().stringToCloudFormation(properties.tenancy),UserData:cdk().stringToCloudFormation(properties.userData),Volumes:cdk().listMapper(convertCfnInstanceVolumePropertyToCloudFormation)(properties.volumes)}):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("additionalInfo","AdditionalInfo",properties.AdditionalInfo!=null?cfn_parse().FromCloudFormation.getString(properties.AdditionalInfo):void 0),ret.addPropertyResult("affinity","Affinity",properties.Affinity!=null?cfn_parse().FromCloudFormation.getString(properties.Affinity):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("cpuOptions","CpuOptions",properties.CpuOptions!=null?CfnInstanceCpuOptionsPropertyFromCloudFormation(properties.CpuOptions):void 0),ret.addPropertyResult("creditSpecification","CreditSpecification",properties.CreditSpecification!=null?CfnInstanceCreditSpecificationPropertyFromCloudFormation(properties.CreditSpecification):void 0),ret.addPropertyResult("disableApiTermination","DisableApiTermination",properties.DisableApiTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DisableApiTermination):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("elasticGpuSpecifications","ElasticGpuSpecifications",properties.ElasticGpuSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceElasticGpuSpecificationPropertyFromCloudFormation)(properties.ElasticGpuSpecifications):void 0),ret.addPropertyResult("elasticInferenceAccelerators","ElasticInferenceAccelerators",properties.ElasticInferenceAccelerators!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceElasticInferenceAcceleratorPropertyFromCloudFormation)(properties.ElasticInferenceAccelerators):void 0),ret.addPropertyResult("enclaveOptions","EnclaveOptions",properties.EnclaveOptions!=null?CfnInstanceEnclaveOptionsPropertyFromCloudFormation(properties.EnclaveOptions):void 0),ret.addPropertyResult("hibernationOptions","HibernationOptions",properties.HibernationOptions!=null?CfnInstanceHibernationOptionsPropertyFromCloudFormation(properties.HibernationOptions):void 0),ret.addPropertyResult("hostId","HostId",properties.HostId!=null?cfn_parse().FromCloudFormation.getString(properties.HostId):void 0),ret.addPropertyResult("hostResourceGroupArn","HostResourceGroupArn",properties.HostResourceGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.HostResourceGroupArn):void 0),ret.addPropertyResult("iamInstanceProfile","IamInstanceProfile",properties.IamInstanceProfile!=null?cfn_parse().FromCloudFormation.getString(properties.IamInstanceProfile):void 0),ret.addPropertyResult("imageId","ImageId",properties.ImageId!=null?cfn_parse().FromCloudFormation.getString(properties.ImageId):void 0),ret.addPropertyResult("instanceInitiatedShutdownBehavior","InstanceInitiatedShutdownBehavior",properties.InstanceInitiatedShutdownBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceInitiatedShutdownBehavior):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("kernelId","KernelId",properties.KernelId!=null?cfn_parse().FromCloudFormation.getString(properties.KernelId):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse().FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("launchTemplate","LaunchTemplate",properties.LaunchTemplate!=null?CfnInstanceLaunchTemplateSpecificationPropertyFromCloudFormation(properties.LaunchTemplate):void 0),ret.addPropertyResult("licenseSpecifications","LicenseSpecifications",properties.LicenseSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceLicenseSpecificationPropertyFromCloudFormation)(properties.LicenseSpecifications):void 0),ret.addPropertyResult("metadataOptions","MetadataOptions",properties.MetadataOptions!=null?CfnInstanceMetadataOptionsPropertyFromCloudFormation(properties.MetadataOptions):void 0),ret.addPropertyResult("monitoring","Monitoring",properties.Monitoring!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Monitoring):void 0),ret.addPropertyResult("networkInterfaces","NetworkInterfaces",properties.NetworkInterfaces!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceNetworkInterfacePropertyFromCloudFormation)(properties.NetworkInterfaces):void 0),ret.addPropertyResult("placementGroupName","PlacementGroupName",properties.PlacementGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.PlacementGroupName):void 0),ret.addPropertyResult("privateDnsNameOptions","PrivateDnsNameOptions",properties.PrivateDnsNameOptions!=null?CfnInstancePrivateDnsNameOptionsPropertyFromCloudFormation(properties.PrivateDnsNameOptions):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("propagateTagsToVolumeOnCreation","PropagateTagsToVolumeOnCreation",properties.PropagateTagsToVolumeOnCreation!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PropagateTagsToVolumeOnCreation):void 0),ret.addPropertyResult("ramdiskId","RamdiskId",properties.RamdiskId!=null?cfn_parse().FromCloudFormation.getString(properties.RamdiskId):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroupIds):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroups):void 0),ret.addPropertyResult("sourceDestCheck","SourceDestCheck",properties.SourceDestCheck!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SourceDestCheck):void 0),ret.addPropertyResult("ssmAssociations","SsmAssociations",properties.SsmAssociations!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceSsmAssociationPropertyFromCloudFormation)(properties.SsmAssociations):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse().FromCloudFormation.getString(properties.Tenancy):void 0),ret.addPropertyResult("userData","UserData",properties.UserData!=null?cfn_parse().FromCloudFormation.getString(properties.UserData):void 0),ret.addPropertyResult("volumes","Volumes",properties.Volumes!=null?cfn_parse().FromCloudFormation.getArray(CfnInstanceVolumePropertyFromCloudFormation)(properties.Volumes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnInstanceConnectEndpoint extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnInstanceConnectEndpoint",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::InstanceConnectEndpoint";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInstanceConnectEndpointPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnInstanceConnectEndpoint(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 isCfnInstanceConnectEndpoint(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnInstanceConnectEndpoint.CFN_RESOURCE_TYPE_NAME}static fromInstanceConnectEndpointArn(scope,id,arn){class Import extends cdk().Resource{instanceConnectEndpointRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:instance-connect-endpoint/${InstanceConnectEndpointId}").parse(arn2);this.instanceConnectEndpointRef={instanceConnectEndpointId:variables.InstanceConnectEndpointId,instanceConnectEndpointArn:arn2}}}return new Import(scope,id,arn)}static fromInstanceConnectEndpointId(scope,id,instanceConnectEndpointId){class Import extends cdk().Resource{instanceConnectEndpointRef;constructor(scope2,id2,instanceConnectEndpointId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:instance-connect-endpoint/${InstanceConnectEndpointId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,InstanceConnectEndpointId:instanceConnectEndpointId2});super(scope2,id2,{environmentFromArn:arn}),this.instanceConnectEndpointRef={instanceConnectEndpointId:instanceConnectEndpointId2,instanceConnectEndpointArn:arn}}}return new Import(scope,id,instanceConnectEndpointId)}static arnForInstanceConnectEndpoint(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IInstanceConnectEndpointRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForInstanceConnectEndpoint),error}return resource.instanceConnectEndpointRef.instanceConnectEndpointArn}cdkTagManager;_clientToken;_preserveClientIp;_securityGroupIds;_subnetId;_tags;cfnPropertyNames={tags:"Tags",clientToken:"ClientToken",preserveClientIp:"PreserveClientIp",securityGroupIds:"SecurityGroupIds",subnetId:"SubnetId"};constructor(scope,id,props){super(scope,id,{type:CfnInstanceConnectEndpoint.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnInstanceConnectEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInstanceConnectEndpoint),error}cdk().requireProperty(props,"subnetId",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::InstanceConnectEndpoint",void 0,{tagPropertyName:"tags"}),this._clientToken=props.clientToken,this._preserveClientIp=props.preserveClientIp,this._securityGroupIds=props.securityGroupIds,this._subnetId=props.subnetId,this._tags=props.tags}get instanceConnectEndpointRef(){return{instanceConnectEndpointId:this.ref,instanceConnectEndpointArn:this.attrInstanceConnectEndpointArn}}get clientToken(){return this._clientToken}set clientToken(value){cdk().traceProperty(this.node,"ClientToken"),this._clientToken=value}get preserveClientIp(){return this._preserveClientIp}set preserveClientIp(value){cdk().traceProperty(this.node,"PreserveClientIp"),this._preserveClientIp=value}get securityGroupIds(){return this._securityGroupIds}set securityGroupIds(value){cdk().traceProperty(this.node,"SecurityGroupIds"),this._securityGroupIds=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrAvailabilityZone(){return cdk().Token.asString(this.getAtt("AvailabilityZone",cdk().ResolutionTypeHint.STRING))}get attrAvailabilityZoneId(){return cdk().Token.asString(this.getAtt("AvailabilityZoneId",cdk().ResolutionTypeHint.STRING))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrInstanceConnectEndpointArn(){return cdk().Token.asString(this.getAtt("InstanceConnectEndpointArn",cdk().ResolutionTypeHint.STRING))}get attrNetworkInterfaceIds(){return cdk().Token.asList(this.getAtt("NetworkInterfaceIds",cdk().ResolutionTypeHint.STRING_LIST))}get attrOwnerId(){return cdk().Token.asString(this.getAtt("OwnerId",cdk().ResolutionTypeHint.STRING))}get attrPublicDnsNames(){return this.getAtt("PublicDnsNames")}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrStateMessage(){return cdk().Token.asString(this.getAtt("StateMessage",cdk().ResolutionTypeHint.STRING))}get attrVpcId(){return cdk().Token.asString(this.getAtt("VpcId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),clientToken:this._clientToken,preserveClientIp:this._preserveClientIp,securityGroupIds:this._securityGroupIds,subnetId:this._subnetId}}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",CfnInstanceConnectEndpoint.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnInstanceConnectEndpointPropsToCloudFormation(props)}}exports.CfnInstanceConnectEndpoint=CfnInstanceConnectEndpoint;function CfnInstanceConnectEndpointInstanceConnectEndpointDnsNamesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("dnsName",cdk().validateString)(properties.dnsName)),errors.collect(cdk().propertyValidator("fipsDnsName",cdk().validateString)(properties.fipsDnsName)),errors.wrap('supplied properties not correct for "InstanceConnectEndpointDnsNamesProperty"')}function convertCfnInstanceConnectEndpointInstanceConnectEndpointDnsNamesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceConnectEndpointInstanceConnectEndpointDnsNamesPropertyValidator(properties).assertSuccess(),{DnsName:cdk().stringToCloudFormation(properties.dnsName),FipsDnsName:cdk().stringToCloudFormation(properties.fipsDnsName)}):properties}function CfnInstanceConnectEndpointInstanceConnectEndpointDnsNamesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("dnsName","DnsName",properties.DnsName!=null?cfn_parse().FromCloudFormation.getString(properties.DnsName):void 0),ret.addPropertyResult("fipsDnsName","FipsDnsName",properties.FipsDnsName!=null?cfn_parse().FromCloudFormation.getString(properties.FipsDnsName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceConnectEndpointInstanceConnectEndpointPublicDnsNamesPropertyValidator(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("dualstack",CfnInstanceConnectEndpointInstanceConnectEndpointDnsNamesPropertyValidator)(properties.dualstack)),errors.collect(cdk().propertyValidator("ipv4",CfnInstanceConnectEndpointInstanceConnectEndpointDnsNamesPropertyValidator)(properties.ipv4)),errors.wrap('supplied properties not correct for "InstanceConnectEndpointPublicDnsNamesProperty"')}function convertCfnInstanceConnectEndpointInstanceConnectEndpointPublicDnsNamesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceConnectEndpointInstanceConnectEndpointPublicDnsNamesPropertyValidator(properties).assertSuccess(),{Dualstack:convertCfnInstanceConnectEndpointInstanceConnectEndpointDnsNamesPropertyToCloudFormation(properties.dualstack),Ipv4:convertCfnInstanceConnectEndpointInstanceConnectEndpointDnsNamesPropertyToCloudFormation(properties.ipv4)}):properties}function CfnInstanceConnectEndpointInstanceConnectEndpointPublicDnsNamesPropertyFromCloudFormation(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("dualstack","Dualstack",properties.Dualstack!=null?CfnInstanceConnectEndpointInstanceConnectEndpointDnsNamesPropertyFromCloudFormation(properties.Dualstack):void 0),ret.addPropertyResult("ipv4","Ipv4",properties.Ipv4!=null?CfnInstanceConnectEndpointInstanceConnectEndpointDnsNamesPropertyFromCloudFormation(properties.Ipv4):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstanceConnectEndpointPropsValidator(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("clientToken",cdk().validateString)(properties.clientToken)),errors.collect(cdk().propertyValidator("preserveClientIp",cdk().validateBoolean)(properties.preserveClientIp)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().listValidator(cdk().validateString))(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnInstanceConnectEndpointProps"')}function convertCfnInstanceConnectEndpointPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInstanceConnectEndpointPropsValidator(properties).assertSuccess(),{ClientToken:cdk().stringToCloudFormation(properties.clientToken),PreserveClientIp:cdk().booleanToCloudFormation(properties.preserveClientIp),SecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroupIds),SubnetId:cdk().stringToCloudFormation(properties.subnetId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnInstanceConnectEndpointPropsFromCloudFormation(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("clientToken","ClientToken",properties.ClientToken!=null?cfn_parse().FromCloudFormation.getString(properties.ClientToken):void 0),ret.addPropertyResult("preserveClientIp","PreserveClientIp",properties.PreserveClientIp!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PreserveClientIp):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroupIds):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnInternetGateway extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnInternetGateway",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::InternetGateway";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInternetGatewayPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnInternetGateway(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 isCfnInternetGateway(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnInternetGateway.CFN_RESOURCE_TYPE_NAME}static fromInternetGatewayId(scope,id,internetGatewayId){class Import extends cdk().Resource{internetGatewayRef;constructor(scope2,id2,internetGatewayId2){super(scope2,id2),this.internetGatewayRef={internetGatewayId:internetGatewayId2}}}return new Import(scope,id,internetGatewayId)}static arnForInternetGateway(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IInternetGatewayRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForInternetGateway),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:internet-gateway/${InternetGatewayId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,InternetGatewayId:resource.internetGatewayRef.internetGatewayId})}tags;_tagsRaw;cfnPropertyNames={tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnInternetGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnInternetGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInternetGateway),error}this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::InternetGateway",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get internetGatewayRef(){return{internetGatewayId:this.ref}}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrInternetGatewayId(){return cdk().Token.asString(this.getAtt("InternetGatewayId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{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",CfnInternetGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnInternetGatewayPropsToCloudFormation(props)}}exports.CfnInternetGateway=CfnInternetGateway;function CfnInternetGatewayPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnInternetGatewayProps"')}function convertCfnInternetGatewayPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnInternetGatewayPropsValidator(properties).assertSuccess(),{Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnInternetGatewayPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnKeyPair extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnKeyPair",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::KeyPair";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnKeyPairPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnKeyPair(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 isCfnKeyPair(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnKeyPair.CFN_RESOURCE_TYPE_NAME}_keyFormat;_keyName;_keyType;_publicKeyMaterial;tags;_tagsRaw;cfnPropertyNames={keyFormat:"KeyFormat",keyName:"KeyName",keyType:"KeyType",publicKeyMaterial:"PublicKeyMaterial",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnKeyPair.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnKeyPairProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnKeyPair),error}cdk().requireProperty(props,"keyName",this),this._keyFormat=props.keyFormat,this._keyName=props.keyName,this._keyType=props.keyType,this._publicKeyMaterial=props.publicKeyMaterial,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::KeyPair",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get keyPairRef(){return{keyName:this.ref}}get keyFormat(){return this._keyFormat}set keyFormat(value){cdk().traceProperty(this.node,"KeyFormat"),this._keyFormat=value}get keyName(){return this._keyName}set keyName(value){cdk().traceProperty(this.node,"KeyName"),this._keyName=value}get keyType(){return this._keyType}set keyType(value){cdk().traceProperty(this.node,"KeyType"),this._keyType=value}get publicKeyMaterial(){return this._publicKeyMaterial}set publicKeyMaterial(value){cdk().traceProperty(this.node,"PublicKeyMaterial"),this._publicKeyMaterial=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrKeyFingerprint(){return cdk().Token.asString(this.getAtt("KeyFingerprint",cdk().ResolutionTypeHint.STRING))}get attrKeyPairId(){return cdk().Token.asString(this.getAtt("KeyPairId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{keyFormat:this._keyFormat,keyName:this._keyName,keyType:this._keyType,publicKeyMaterial:this._publicKeyMaterial,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",CfnKeyPair.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnKeyPairPropsToCloudFormation(props)}}exports.CfnKeyPair=CfnKeyPair;function CfnKeyPairPropsValidator(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("keyFormat",cdk().validateString)(properties.keyFormat)),errors.collect(cdk().propertyValidator("keyName",cdk().requiredValidator)(properties.keyName)),errors.collect(cdk().propertyValidator("keyName",cdk().validateString)(properties.keyName)),errors.collect(cdk().propertyValidator("keyType",cdk().validateString)(properties.keyType)),errors.collect(cdk().propertyValidator("publicKeyMaterial",cdk().validateString)(properties.publicKeyMaterial)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnKeyPairProps"')}function convertCfnKeyPairPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnKeyPairPropsValidator(properties).assertSuccess(),{KeyFormat:cdk().stringToCloudFormation(properties.keyFormat),KeyName:cdk().stringToCloudFormation(properties.keyName),KeyType:cdk().stringToCloudFormation(properties.keyType),PublicKeyMaterial:cdk().stringToCloudFormation(properties.publicKeyMaterial),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnKeyPairPropsFromCloudFormation(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("keyFormat","KeyFormat",properties.KeyFormat!=null?cfn_parse().FromCloudFormation.getString(properties.KeyFormat):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse().FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("keyType","KeyType",properties.KeyType!=null?cfn_parse().FromCloudFormation.getString(properties.KeyType):void 0),ret.addPropertyResult("publicKeyMaterial","PublicKeyMaterial",properties.PublicKeyMaterial!=null?cfn_parse().FromCloudFormation.getString(properties.PublicKeyMaterial):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 CfnLaunchTemplate extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnLaunchTemplate",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::LaunchTemplate";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLaunchTemplatePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLaunchTemplate(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 isCfnLaunchTemplate(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLaunchTemplate.CFN_RESOURCE_TYPE_NAME}static fromLaunchTemplateId(scope,id,launchTemplateId){class Import extends cdk().Resource{launchTemplateRef;constructor(scope2,id2,launchTemplateId2){super(scope2,id2),this.launchTemplateRef={launchTemplateId:launchTemplateId2}}}return new Import(scope,id,launchTemplateId)}static arnForLaunchTemplate(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ILaunchTemplateRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForLaunchTemplate),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:launch-template/${LaunchTemplateId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,LaunchTemplateId:resource.launchTemplateRef.launchTemplateId})}_launchTemplateData;_launchTemplateName;_tagSpecifications;_versionDescription;cfnPropertyNames={launchTemplateData:"LaunchTemplateData",launchTemplateName:"LaunchTemplateName",tagSpecifications:"TagSpecifications",versionDescription:"VersionDescription"};constructor(scope,id,props){super(scope,id,{type:CfnLaunchTemplate.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnLaunchTemplateProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLaunchTemplate),error}cdk().requireProperty(props,"launchTemplateData",this),this._launchTemplateData=props.launchTemplateData,this._launchTemplateName=props.launchTemplateName,this._tagSpecifications=props.tagSpecifications,this._versionDescription=props.versionDescription}get launchTemplateRef(){return{launchTemplateId:this.ref}}get launchTemplateData(){return this._launchTemplateData}set launchTemplateData(value){cdk().traceProperty(this.node,"LaunchTemplateData"),this._launchTemplateData=value}get launchTemplateName(){return this._launchTemplateName}set launchTemplateName(value){cdk().traceProperty(this.node,"LaunchTemplateName"),this._launchTemplateName=value}get tagSpecifications(){return this._tagSpecifications}set tagSpecifications(value){cdk().traceProperty(this.node,"TagSpecifications"),this._tagSpecifications=value}get versionDescription(){return this._versionDescription}set versionDescription(value){cdk().traceProperty(this.node,"VersionDescription"),this._versionDescription=value}get attrDefaultVersionNumber(){return cdk().Token.asString(this.getAtt("DefaultVersionNumber",cdk().ResolutionTypeHint.STRING))}get attrLatestVersionNumber(){return cdk().Token.asString(this.getAtt("LatestVersionNumber",cdk().ResolutionTypeHint.STRING))}get attrLaunchTemplateId(){return cdk().Token.asString(this.getAtt("LaunchTemplateId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{launchTemplateData:this._launchTemplateData,launchTemplateName:this._launchTemplateName,tagSpecifications:this._tagSpecifications,versionDescription:this._versionDescription}}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",CfnLaunchTemplate.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLaunchTemplatePropsToCloudFormation(props)}}exports.CfnLaunchTemplate=CfnLaunchTemplate;function CfnLaunchTemplateTagSpecificationPropertyValidator(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("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function convertCfnLaunchTemplateTagSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateTagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk().stringToCloudFormation(properties.resourceType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLaunchTemplateTagSpecificationPropertyFromCloudFormation(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("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):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}function CfnLaunchTemplateEbsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("ebsCardIndex",cdk().validateNumber)(properties.ebsCardIndex)),errors.collect(cdk().propertyValidator("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.collect(cdk().propertyValidator("iops",cdk().validateNumber)(properties.iops)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("snapshotId",cdk().validateString)(properties.snapshotId)),errors.collect(cdk().propertyValidator("throughput",cdk().validateNumber)(properties.throughput)),errors.collect(cdk().propertyValidator("volumeInitializationRate",cdk().validateNumber)(properties.volumeInitializationRate)),errors.collect(cdk().propertyValidator("volumeSize",cdk().validateNumber)(properties.volumeSize)),errors.collect(cdk().propertyValidator("volumeType",cdk().validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsProperty"')}function convertCfnLaunchTemplateEbsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateEbsPropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),EbsCardIndex:cdk().numberToCloudFormation(properties.ebsCardIndex),Encrypted:cdk().booleanToCloudFormation(properties.encrypted),Iops:cdk().numberToCloudFormation(properties.iops),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),SnapshotId:cdk().stringToCloudFormation(properties.snapshotId),Throughput:cdk().numberToCloudFormation(properties.throughput),VolumeInitializationRate:cdk().numberToCloudFormation(properties.volumeInitializationRate),VolumeSize:cdk().numberToCloudFormation(properties.volumeSize),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnLaunchTemplateEbsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("ebsCardIndex","EbsCardIndex",properties.EbsCardIndex!=null?cfn_parse().FromCloudFormation.getNumber(properties.EbsCardIndex):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse().FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("throughput","Throughput",properties.Throughput!=null?cfn_parse().FromCloudFormation.getNumber(properties.Throughput):void 0),ret.addPropertyResult("volumeInitializationRate","VolumeInitializationRate",properties.VolumeInitializationRate!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumeInitializationRate):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateBlockDeviceMappingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deviceName",cdk().validateString)(properties.deviceName)),errors.collect(cdk().propertyValidator("ebs",CfnLaunchTemplateEbsPropertyValidator)(properties.ebs)),errors.collect(cdk().propertyValidator("noDevice",cdk().validateString)(properties.noDevice)),errors.collect(cdk().propertyValidator("virtualName",cdk().validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "BlockDeviceMappingProperty"')}function convertCfnLaunchTemplateBlockDeviceMappingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateBlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk().stringToCloudFormation(properties.deviceName),Ebs:convertCfnLaunchTemplateEbsPropertyToCloudFormation(properties.ebs),NoDevice:cdk().stringToCloudFormation(properties.noDevice),VirtualName:cdk().stringToCloudFormation(properties.virtualName)}):properties}function CfnLaunchTemplateBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",properties.DeviceName!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceName):void 0),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnLaunchTemplateEbsPropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?cfn_parse().FromCloudFormation.getString(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse().FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateMaintenanceOptionsPropertyValidator(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("autoRecovery",cdk().validateString)(properties.autoRecovery)),errors.wrap('supplied properties not correct for "MaintenanceOptionsProperty"')}function convertCfnLaunchTemplateMaintenanceOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateMaintenanceOptionsPropertyValidator(properties).assertSuccess(),{AutoRecovery:cdk().stringToCloudFormation(properties.autoRecovery)}):properties}function CfnLaunchTemplateMaintenanceOptionsPropertyFromCloudFormation(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("autoRecovery","AutoRecovery",properties.AutoRecovery!=null?cfn_parse().FromCloudFormation.getString(properties.AutoRecovery):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateIamInstanceProfilePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "IamInstanceProfileProperty"')}function convertCfnLaunchTemplateIamInstanceProfilePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateIamInstanceProfilePropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnLaunchTemplateIamInstanceProfilePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateElasticGpuSpecificationPropertyValidator(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("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "ElasticGpuSpecificationProperty"')}function convertCfnLaunchTemplateElasticGpuSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateElasticGpuSpecificationPropertyValidator(properties).assertSuccess(),{Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnLaunchTemplateElasticGpuSpecificationPropertyFromCloudFormation(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("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("count",cdk().validateNumber)(properties.count)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "LaunchTemplateElasticInferenceAcceleratorProperty"')}function convertCfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyValidator(properties).assertSuccess(),{Count:cdk().numberToCloudFormation(properties.count),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse().FromCloudFormation.getNumber(properties.Count):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplatePlacementPropertyValidator(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("affinity",cdk().validateString)(properties.affinity)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("groupId",cdk().validateString)(properties.groupId)),errors.collect(cdk().propertyValidator("groupName",cdk().validateString)(properties.groupName)),errors.collect(cdk().propertyValidator("hostId",cdk().validateString)(properties.hostId)),errors.collect(cdk().propertyValidator("hostResourceGroupArn",cdk().validateString)(properties.hostResourceGroupArn)),errors.collect(cdk().propertyValidator("partitionNumber",cdk().validateNumber)(properties.partitionNumber)),errors.collect(cdk().propertyValidator("spreadDomain",cdk().validateString)(properties.spreadDomain)),errors.collect(cdk().propertyValidator("tenancy",cdk().validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "PlacementProperty"')}function convertCfnLaunchTemplatePlacementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplatePlacementPropertyValidator(properties).assertSuccess(),{Affinity:cdk().stringToCloudFormation(properties.affinity),AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),GroupId:cdk().stringToCloudFormation(properties.groupId),GroupName:cdk().stringToCloudFormation(properties.groupName),HostId:cdk().stringToCloudFormation(properties.hostId),HostResourceGroupArn:cdk().stringToCloudFormation(properties.hostResourceGroupArn),PartitionNumber:cdk().numberToCloudFormation(properties.partitionNumber),SpreadDomain:cdk().stringToCloudFormation(properties.spreadDomain),Tenancy:cdk().stringToCloudFormation(properties.tenancy)}):properties}function CfnLaunchTemplatePlacementPropertyFromCloudFormation(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("affinity","Affinity",properties.Affinity!=null?cfn_parse().FromCloudFormation.getString(properties.Affinity):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("groupId","GroupId",properties.GroupId!=null?cfn_parse().FromCloudFormation.getString(properties.GroupId):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse().FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("hostId","HostId",properties.HostId!=null?cfn_parse().FromCloudFormation.getString(properties.HostId):void 0),ret.addPropertyResult("hostResourceGroupArn","HostResourceGroupArn",properties.HostResourceGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.HostResourceGroupArn):void 0),ret.addPropertyResult("partitionNumber","PartitionNumber",properties.PartitionNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.PartitionNumber):void 0),ret.addPropertyResult("spreadDomain","SpreadDomain",properties.SpreadDomain!=null?cfn_parse().FromCloudFormation.getString(properties.SpreadDomain):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse().FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplatePrivateIpAddPropertyValidator(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("primary",cdk().validateBoolean)(properties.primary)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddProperty"')}function convertCfnLaunchTemplatePrivateIpAddPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplatePrivateIpAddPropertyValidator(properties).assertSuccess(),{Primary:cdk().booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnLaunchTemplatePrivateIpAddPropertyFromCloudFormation(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("primary","Primary",properties.Primary!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Primary):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateIpv4PrefixSpecificationPropertyValidator(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("ipv4Prefix",cdk().validateString)(properties.ipv4Prefix)),errors.wrap('supplied properties not correct for "Ipv4PrefixSpecificationProperty"')}function convertCfnLaunchTemplateIpv4PrefixSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateIpv4PrefixSpecificationPropertyValidator(properties).assertSuccess(),{Ipv4Prefix:cdk().stringToCloudFormation(properties.ipv4Prefix)}):properties}function CfnLaunchTemplateIpv4PrefixSpecificationPropertyFromCloudFormation(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("ipv4Prefix","Ipv4Prefix",properties.Ipv4Prefix!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv4Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateIpv6PrefixSpecificationPropertyValidator(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("ipv6Prefix",cdk().validateString)(properties.ipv6Prefix)),errors.wrap('supplied properties not correct for "Ipv6PrefixSpecificationProperty"')}function convertCfnLaunchTemplateIpv6PrefixSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateIpv6PrefixSpecificationPropertyValidator(properties).assertSuccess(),{Ipv6Prefix:cdk().stringToCloudFormation(properties.ipv6Prefix)}):properties}function CfnLaunchTemplateIpv6PrefixSpecificationPropertyFromCloudFormation(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("ipv6Prefix","Ipv6Prefix",properties.Ipv6Prefix!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateIpv6AddPropertyValidator(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("ipv6Address",cdk().validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "Ipv6AddProperty"')}function convertCfnLaunchTemplateIpv6AddPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateIpv6AddPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk().stringToCloudFormation(properties.ipv6Address)}):properties}function CfnLaunchTemplateIpv6AddPropertyFromCloudFormation(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("ipv6Address","Ipv6Address",properties.Ipv6Address!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6Address):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateEnaSrdUdpSpecificationPropertyValidator(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("enaSrdUdpEnabled",cdk().validateBoolean)(properties.enaSrdUdpEnabled)),errors.wrap('supplied properties not correct for "EnaSrdUdpSpecificationProperty"')}function convertCfnLaunchTemplateEnaSrdUdpSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateEnaSrdUdpSpecificationPropertyValidator(properties).assertSuccess(),{EnaSrdUdpEnabled:cdk().booleanToCloudFormation(properties.enaSrdUdpEnabled)}):properties}function CfnLaunchTemplateEnaSrdUdpSpecificationPropertyFromCloudFormation(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("enaSrdUdpEnabled","EnaSrdUdpEnabled",properties.EnaSrdUdpEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnaSrdUdpEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateEnaSrdSpecificationPropertyValidator(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("enaSrdEnabled",cdk().validateBoolean)(properties.enaSrdEnabled)),errors.collect(cdk().propertyValidator("enaSrdUdpSpecification",CfnLaunchTemplateEnaSrdUdpSpecificationPropertyValidator)(properties.enaSrdUdpSpecification)),errors.wrap('supplied properties not correct for "EnaSrdSpecificationProperty"')}function convertCfnLaunchTemplateEnaSrdSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateEnaSrdSpecificationPropertyValidator(properties).assertSuccess(),{EnaSrdEnabled:cdk().booleanToCloudFormation(properties.enaSrdEnabled),EnaSrdUdpSpecification:convertCfnLaunchTemplateEnaSrdUdpSpecificationPropertyToCloudFormation(properties.enaSrdUdpSpecification)}):properties}function CfnLaunchTemplateEnaSrdSpecificationPropertyFromCloudFormation(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("enaSrdEnabled","EnaSrdEnabled",properties.EnaSrdEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnaSrdEnabled):void 0),ret.addPropertyResult("enaSrdUdpSpecification","EnaSrdUdpSpecification",properties.EnaSrdUdpSpecification!=null?CfnLaunchTemplateEnaSrdUdpSpecificationPropertyFromCloudFormation(properties.EnaSrdUdpSpecification):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateConnectionTrackingSpecificationPropertyValidator(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("tcpEstablishedTimeout",cdk().validateNumber)(properties.tcpEstablishedTimeout)),errors.collect(cdk().propertyValidator("udpStreamTimeout",cdk().validateNumber)(properties.udpStreamTimeout)),errors.collect(cdk().propertyValidator("udpTimeout",cdk().validateNumber)(properties.udpTimeout)),errors.wrap('supplied properties not correct for "ConnectionTrackingSpecificationProperty"')}function convertCfnLaunchTemplateConnectionTrackingSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateConnectionTrackingSpecificationPropertyValidator(properties).assertSuccess(),{TcpEstablishedTimeout:cdk().numberToCloudFormation(properties.tcpEstablishedTimeout),UdpStreamTimeout:cdk().numberToCloudFormation(properties.udpStreamTimeout),UdpTimeout:cdk().numberToCloudFormation(properties.udpTimeout)}):properties}function CfnLaunchTemplateConnectionTrackingSpecificationPropertyFromCloudFormation(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("tcpEstablishedTimeout","TcpEstablishedTimeout",properties.TcpEstablishedTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.TcpEstablishedTimeout):void 0),ret.addPropertyResult("udpStreamTimeout","UdpStreamTimeout",properties.UdpStreamTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.UdpStreamTimeout):void 0),ret.addPropertyResult("udpTimeout","UdpTimeout",properties.UdpTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.UdpTimeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateNetworkInterfacePropertyValidator(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("associateCarrierIpAddress",cdk().validateBoolean)(properties.associateCarrierIpAddress)),errors.collect(cdk().propertyValidator("associatePublicIpAddress",cdk().validateBoolean)(properties.associatePublicIpAddress)),errors.collect(cdk().propertyValidator("connectionTrackingSpecification",CfnLaunchTemplateConnectionTrackingSpecificationPropertyValidator)(properties.connectionTrackingSpecification)),errors.collect(cdk().propertyValidator("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("deviceIndex",cdk().validateNumber)(properties.deviceIndex)),errors.collect(cdk().propertyValidator("enaQueueCount",cdk().validateNumber)(properties.enaQueueCount)),errors.collect(cdk().propertyValidator("enaSrdSpecification",CfnLaunchTemplateEnaSrdSpecificationPropertyValidator)(properties.enaSrdSpecification)),errors.collect(cdk().propertyValidator("groups",cdk().listValidator(cdk().validateString))(properties.groups)),errors.collect(cdk().propertyValidator("interfaceType",cdk().validateString)(properties.interfaceType)),errors.collect(cdk().propertyValidator("ipv4PrefixCount",cdk().validateNumber)(properties.ipv4PrefixCount)),errors.collect(cdk().propertyValidator("ipv4Prefixes",cdk().listValidator(CfnLaunchTemplateIpv4PrefixSpecificationPropertyValidator))(properties.ipv4Prefixes)),errors.collect(cdk().propertyValidator("ipv6AddressCount",cdk().validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk().propertyValidator("ipv6Addresses",cdk().listValidator(CfnLaunchTemplateIpv6AddPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk().propertyValidator("ipv6PrefixCount",cdk().validateNumber)(properties.ipv6PrefixCount)),errors.collect(cdk().propertyValidator("ipv6Prefixes",cdk().listValidator(CfnLaunchTemplateIpv6PrefixSpecificationPropertyValidator))(properties.ipv6Prefixes)),errors.collect(cdk().propertyValidator("networkCardIndex",cdk().validateNumber)(properties.networkCardIndex)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("primaryIpv6",cdk().validateBoolean)(properties.primaryIpv6)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.collect(cdk().propertyValidator("privateIpAddresses",cdk().listValidator(CfnLaunchTemplatePrivateIpAddPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk().propertyValidator("secondaryPrivateIpAddressCount",cdk().validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "NetworkInterfaceProperty"')}function convertCfnLaunchTemplateNetworkInterfacePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateNetworkInterfacePropertyValidator(properties).assertSuccess(),{AssociateCarrierIpAddress:cdk().booleanToCloudFormation(properties.associateCarrierIpAddress),AssociatePublicIpAddress:cdk().booleanToCloudFormation(properties.associatePublicIpAddress),ConnectionTrackingSpecification:convertCfnLaunchTemplateConnectionTrackingSpecificationPropertyToCloudFormation(properties.connectionTrackingSpecification),DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),Description:cdk().stringToCloudFormation(properties.description),DeviceIndex:cdk().numberToCloudFormation(properties.deviceIndex),EnaQueueCount:cdk().numberToCloudFormation(properties.enaQueueCount),EnaSrdSpecification:convertCfnLaunchTemplateEnaSrdSpecificationPropertyToCloudFormation(properties.enaSrdSpecification),Groups:cdk().listMapper(cdk().stringToCloudFormation)(properties.groups),InterfaceType:cdk().stringToCloudFormation(properties.interfaceType),Ipv4PrefixCount:cdk().numberToCloudFormation(properties.ipv4PrefixCount),Ipv4Prefixes:cdk().listMapper(convertCfnLaunchTemplateIpv4PrefixSpecificationPropertyToCloudFormation)(properties.ipv4Prefixes),Ipv6AddressCount:cdk().numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk().listMapper(convertCfnLaunchTemplateIpv6AddPropertyToCloudFormation)(properties.ipv6Addresses),Ipv6PrefixCount:cdk().numberToCloudFormation(properties.ipv6PrefixCount),Ipv6Prefixes:cdk().listMapper(convertCfnLaunchTemplateIpv6PrefixSpecificationPropertyToCloudFormation)(properties.ipv6Prefixes),NetworkCardIndex:cdk().numberToCloudFormation(properties.networkCardIndex),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),PrimaryIpv6:cdk().booleanToCloudFormation(properties.primaryIpv6),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress),PrivateIpAddresses:cdk().listMapper(convertCfnLaunchTemplatePrivateIpAddPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk().numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnLaunchTemplateNetworkInterfacePropertyFromCloudFormation(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("associateCarrierIpAddress","AssociateCarrierIpAddress",properties.AssociateCarrierIpAddress!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AssociateCarrierIpAddress):void 0),ret.addPropertyResult("associatePublicIpAddress","AssociatePublicIpAddress",properties.AssociatePublicIpAddress!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AssociatePublicIpAddress):void 0),ret.addPropertyResult("connectionTrackingSpecification","ConnectionTrackingSpecification",properties.ConnectionTrackingSpecification!=null?CfnLaunchTemplateConnectionTrackingSpecificationPropertyFromCloudFormation(properties.ConnectionTrackingSpecification):void 0),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceIndex","DeviceIndex",properties.DeviceIndex!=null?cfn_parse().FromCloudFormation.getNumber(properties.DeviceIndex):void 0),ret.addPropertyResult("enaQueueCount","EnaQueueCount",properties.EnaQueueCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.EnaQueueCount):void 0),ret.addPropertyResult("enaSrdSpecification","EnaSrdSpecification",properties.EnaSrdSpecification!=null?CfnLaunchTemplateEnaSrdSpecificationPropertyFromCloudFormation(properties.EnaSrdSpecification):void 0),ret.addPropertyResult("groups","Groups",properties.Groups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Groups):void 0),ret.addPropertyResult("interfaceType","InterfaceType",properties.InterfaceType!=null?cfn_parse().FromCloudFormation.getString(properties.InterfaceType):void 0),ret.addPropertyResult("ipv4PrefixCount","Ipv4PrefixCount",properties.Ipv4PrefixCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv4PrefixCount):void 0),ret.addPropertyResult("ipv4Prefixes","Ipv4Prefixes",properties.Ipv4Prefixes!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplateIpv4PrefixSpecificationPropertyFromCloudFormation)(properties.Ipv4Prefixes):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplateIpv6AddPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("ipv6PrefixCount","Ipv6PrefixCount",properties.Ipv6PrefixCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6PrefixCount):void 0),ret.addPropertyResult("ipv6Prefixes","Ipv6Prefixes",properties.Ipv6Prefixes!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplateIpv6PrefixSpecificationPropertyFromCloudFormation)(properties.Ipv6Prefixes):void 0),ret.addPropertyResult("networkCardIndex","NetworkCardIndex",properties.NetworkCardIndex!=null?cfn_parse().FromCloudFormation.getNumber(properties.NetworkCardIndex):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("primaryIpv6","PrimaryIpv6",properties.PrimaryIpv6!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PrimaryIpv6):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplatePrivateIpAddPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateEnclaveOptionsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "EnclaveOptionsProperty"')}function convertCfnLaunchTemplateEnclaveOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateEnclaveOptionsPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnLaunchTemplateEnclaveOptionsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateMonitoringPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "MonitoringProperty"')}function convertCfnLaunchTemplateMonitoringPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateMonitoringPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnLaunchTemplateMonitoringPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateHibernationOptionsPropertyValidator(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("configured",cdk().validateBoolean)(properties.configured)),errors.wrap('supplied properties not correct for "HibernationOptionsProperty"')}function convertCfnLaunchTemplateHibernationOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateHibernationOptionsPropertyValidator(properties).assertSuccess(),{Configured:cdk().booleanToCloudFormation(properties.configured)}):properties}function CfnLaunchTemplateHibernationOptionsPropertyFromCloudFormation(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("configured","Configured",properties.Configured!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Configured):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateMetadataOptionsPropertyValidator(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("httpEndpoint",cdk().validateString)(properties.httpEndpoint)),errors.collect(cdk().propertyValidator("httpProtocolIpv6",cdk().validateString)(properties.httpProtocolIpv6)),errors.collect(cdk().propertyValidator("httpPutResponseHopLimit",cdk().validateNumber)(properties.httpPutResponseHopLimit)),errors.collect(cdk().propertyValidator("httpTokens",cdk().validateString)(properties.httpTokens)),errors.collect(cdk().propertyValidator("instanceMetadataTags",cdk().validateString)(properties.instanceMetadataTags)),errors.wrap('supplied properties not correct for "MetadataOptionsProperty"')}function convertCfnLaunchTemplateMetadataOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateMetadataOptionsPropertyValidator(properties).assertSuccess(),{HttpEndpoint:cdk().stringToCloudFormation(properties.httpEndpoint),HttpProtocolIpv6:cdk().stringToCloudFormation(properties.httpProtocolIpv6),HttpPutResponseHopLimit:cdk().numberToCloudFormation(properties.httpPutResponseHopLimit),HttpTokens:cdk().stringToCloudFormation(properties.httpTokens),InstanceMetadataTags:cdk().stringToCloudFormation(properties.instanceMetadataTags)}):properties}function CfnLaunchTemplateMetadataOptionsPropertyFromCloudFormation(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("httpEndpoint","HttpEndpoint",properties.HttpEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.HttpEndpoint):void 0),ret.addPropertyResult("httpProtocolIpv6","HttpProtocolIpv6",properties.HttpProtocolIpv6!=null?cfn_parse().FromCloudFormation.getString(properties.HttpProtocolIpv6):void 0),ret.addPropertyResult("httpPutResponseHopLimit","HttpPutResponseHopLimit",properties.HttpPutResponseHopLimit!=null?cfn_parse().FromCloudFormation.getNumber(properties.HttpPutResponseHopLimit):void 0),ret.addPropertyResult("httpTokens","HttpTokens",properties.HttpTokens!=null?cfn_parse().FromCloudFormation.getString(properties.HttpTokens):void 0),ret.addPropertyResult("instanceMetadataTags","InstanceMetadataTags",properties.InstanceMetadataTags!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceMetadataTags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateLicenseSpecificationPropertyValidator(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("licenseConfigurationArn",cdk().validateString)(properties.licenseConfigurationArn)),errors.wrap('supplied properties not correct for "LicenseSpecificationProperty"')}function convertCfnLaunchTemplateLicenseSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateLicenseSpecificationPropertyValidator(properties).assertSuccess(),{LicenseConfigurationArn:cdk().stringToCloudFormation(properties.licenseConfigurationArn)}):properties}function CfnLaunchTemplateLicenseSpecificationPropertyFromCloudFormation(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("licenseConfigurationArn","LicenseConfigurationArn",properties.LicenseConfigurationArn!=null?cfn_parse().FromCloudFormation.getString(properties.LicenseConfigurationArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateCpuOptionsPropertyValidator(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("amdSevSnp",cdk().validateString)(properties.amdSevSnp)),errors.collect(cdk().propertyValidator("coreCount",cdk().validateNumber)(properties.coreCount)),errors.collect(cdk().propertyValidator("threadsPerCore",cdk().validateNumber)(properties.threadsPerCore)),errors.wrap('supplied properties not correct for "CpuOptionsProperty"')}function convertCfnLaunchTemplateCpuOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateCpuOptionsPropertyValidator(properties).assertSuccess(),{AmdSevSnp:cdk().stringToCloudFormation(properties.amdSevSnp),CoreCount:cdk().numberToCloudFormation(properties.coreCount),ThreadsPerCore:cdk().numberToCloudFormation(properties.threadsPerCore)}):properties}function CfnLaunchTemplateCpuOptionsPropertyFromCloudFormation(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("amdSevSnp","AmdSevSnp",properties.AmdSevSnp!=null?cfn_parse().FromCloudFormation.getString(properties.AmdSevSnp):void 0),ret.addPropertyResult("coreCount","CoreCount",properties.CoreCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.CoreCount):void 0),ret.addPropertyResult("threadsPerCore","ThreadsPerCore",properties.ThreadsPerCore!=null?cfn_parse().FromCloudFormation.getNumber(properties.ThreadsPerCore):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplatePrivateDnsNameOptionsPropertyValidator(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("enableResourceNameDnsAaaaRecord",cdk().validateBoolean)(properties.enableResourceNameDnsAaaaRecord)),errors.collect(cdk().propertyValidator("enableResourceNameDnsARecord",cdk().validateBoolean)(properties.enableResourceNameDnsARecord)),errors.collect(cdk().propertyValidator("hostnameType",cdk().validateString)(properties.hostnameType)),errors.wrap('supplied properties not correct for "PrivateDnsNameOptionsProperty"')}function convertCfnLaunchTemplatePrivateDnsNameOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplatePrivateDnsNameOptionsPropertyValidator(properties).assertSuccess(),{EnableResourceNameDnsAAAARecord:cdk().booleanToCloudFormation(properties.enableResourceNameDnsAaaaRecord),EnableResourceNameDnsARecord:cdk().booleanToCloudFormation(properties.enableResourceNameDnsARecord),HostnameType:cdk().stringToCloudFormation(properties.hostnameType)}):properties}function CfnLaunchTemplatePrivateDnsNameOptionsPropertyFromCloudFormation(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("enableResourceNameDnsAaaaRecord","EnableResourceNameDnsAAAARecord",properties.EnableResourceNameDnsAAAARecord!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableResourceNameDnsAAAARecord):void 0),ret.addPropertyResult("enableResourceNameDnsARecord","EnableResourceNameDnsARecord",properties.EnableResourceNameDnsARecord!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableResourceNameDnsARecord):void 0),ret.addPropertyResult("hostnameType","HostnameType",properties.HostnameType!=null?cfn_parse().FromCloudFormation.getString(properties.HostnameType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateSpotOptionsPropertyValidator(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("blockDurationMinutes",cdk().validateNumber)(properties.blockDurationMinutes)),errors.collect(cdk().propertyValidator("instanceInterruptionBehavior",cdk().validateString)(properties.instanceInterruptionBehavior)),errors.collect(cdk().propertyValidator("maxPrice",cdk().validateString)(properties.maxPrice)),errors.collect(cdk().propertyValidator("spotInstanceType",cdk().validateString)(properties.spotInstanceType)),errors.collect(cdk().propertyValidator("validUntil",cdk().validateString)(properties.validUntil)),errors.wrap('supplied properties not correct for "SpotOptionsProperty"')}function convertCfnLaunchTemplateSpotOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateSpotOptionsPropertyValidator(properties).assertSuccess(),{BlockDurationMinutes:cdk().numberToCloudFormation(properties.blockDurationMinutes),InstanceInterruptionBehavior:cdk().stringToCloudFormation(properties.instanceInterruptionBehavior),MaxPrice:cdk().stringToCloudFormation(properties.maxPrice),SpotInstanceType:cdk().stringToCloudFormation(properties.spotInstanceType),ValidUntil:cdk().stringToCloudFormation(properties.validUntil)}):properties}function CfnLaunchTemplateSpotOptionsPropertyFromCloudFormation(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("blockDurationMinutes","BlockDurationMinutes",properties.BlockDurationMinutes!=null?cfn_parse().FromCloudFormation.getNumber(properties.BlockDurationMinutes):void 0),ret.addPropertyResult("instanceInterruptionBehavior","InstanceInterruptionBehavior",properties.InstanceInterruptionBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceInterruptionBehavior):void 0),ret.addPropertyResult("maxPrice","MaxPrice",properties.MaxPrice!=null?cfn_parse().FromCloudFormation.getString(properties.MaxPrice):void 0),ret.addPropertyResult("spotInstanceType","SpotInstanceType",properties.SpotInstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.SpotInstanceType):void 0),ret.addPropertyResult("validUntil","ValidUntil",properties.ValidUntil!=null?cfn_parse().FromCloudFormation.getString(properties.ValidUntil):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateInstanceMarketOptionsPropertyValidator(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("marketType",cdk().validateString)(properties.marketType)),errors.collect(cdk().propertyValidator("spotOptions",CfnLaunchTemplateSpotOptionsPropertyValidator)(properties.spotOptions)),errors.wrap('supplied properties not correct for "InstanceMarketOptionsProperty"')}function convertCfnLaunchTemplateInstanceMarketOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateInstanceMarketOptionsPropertyValidator(properties).assertSuccess(),{MarketType:cdk().stringToCloudFormation(properties.marketType),SpotOptions:convertCfnLaunchTemplateSpotOptionsPropertyToCloudFormation(properties.spotOptions)}):properties}function CfnLaunchTemplateInstanceMarketOptionsPropertyFromCloudFormation(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("marketType","MarketType",properties.MarketType!=null?cfn_parse().FromCloudFormation.getString(properties.MarketType):void 0),ret.addPropertyResult("spotOptions","SpotOptions",properties.SpotOptions!=null?CfnLaunchTemplateSpotOptionsPropertyFromCloudFormation(properties.SpotOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateNetworkInterfaceCountPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkInterfaceCountProperty"')}function convertCfnLaunchTemplateNetworkInterfaceCountPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateNetworkInterfaceCountPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateNetworkInterfaceCountPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateMemoryGiBPerVCpuPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryGiBPerVCpuProperty"')}function convertCfnLaunchTemplateMemoryGiBPerVCpuPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateMemoryGiBPerVCpuPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateMemoryGiBPerVCpuPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateVCpuCountPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "VCpuCountProperty"')}function convertCfnLaunchTemplateVCpuCountPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateVCpuCountPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateVCpuCountPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateAcceleratorCountPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorCountProperty"')}function convertCfnLaunchTemplateAcceleratorCountPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateAcceleratorCountPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateAcceleratorCountPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateNetworkBandwidthGbpsPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkBandwidthGbpsProperty"')}function convertCfnLaunchTemplateNetworkBandwidthGbpsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateNetworkBandwidthGbpsPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateNetworkBandwidthGbpsPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "BaselineEbsBandwidthMbpsProperty"')}function convertCfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorTotalMemoryMiBProperty"')}function convertCfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateMemoryMiBPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryMiBProperty"')}function convertCfnLaunchTemplateMemoryMiBPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateMemoryMiBPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateMemoryMiBPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateTotalLocalStorageGBPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "TotalLocalStorageGBProperty"')}function convertCfnLaunchTemplateTotalLocalStorageGBPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateTotalLocalStorageGBPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateTotalLocalStorageGBPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateReferencePropertyValidator(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("instanceFamily",cdk().validateString)(properties.instanceFamily)),errors.wrap('supplied properties not correct for "ReferenceProperty"')}function convertCfnLaunchTemplateReferencePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateReferencePropertyValidator(properties).assertSuccess(),{InstanceFamily:cdk().stringToCloudFormation(properties.instanceFamily)}):properties}function CfnLaunchTemplateReferencePropertyFromCloudFormation(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("instanceFamily","InstanceFamily",properties.InstanceFamily!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceFamily):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateCpuPropertyValidator(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("references",cdk().listValidator(CfnLaunchTemplateReferencePropertyValidator))(properties.references)),errors.wrap('supplied properties not correct for "CpuProperty"')}function convertCfnLaunchTemplateCpuPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateCpuPropertyValidator(properties).assertSuccess(),{References:cdk().listMapper(convertCfnLaunchTemplateReferencePropertyToCloudFormation)(properties.references)}):properties}function CfnLaunchTemplateCpuPropertyFromCloudFormation(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("references","References",properties.References!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplateReferencePropertyFromCloudFormation)(properties.References):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateBaselinePerformanceFactorsPropertyValidator(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("cpu",CfnLaunchTemplateCpuPropertyValidator)(properties.cpu)),errors.wrap('supplied properties not correct for "BaselinePerformanceFactorsProperty"')}function convertCfnLaunchTemplateBaselinePerformanceFactorsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateBaselinePerformanceFactorsPropertyValidator(properties).assertSuccess(),{Cpu:convertCfnLaunchTemplateCpuPropertyToCloudFormation(properties.cpu)}):properties}function CfnLaunchTemplateBaselinePerformanceFactorsPropertyFromCloudFormation(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("cpu","Cpu",properties.Cpu!=null?CfnLaunchTemplateCpuPropertyFromCloudFormation(properties.Cpu):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateInstanceRequirementsPropertyValidator(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("acceleratorCount",CfnLaunchTemplateAcceleratorCountPropertyValidator)(properties.acceleratorCount)),errors.collect(cdk().propertyValidator("acceleratorManufacturers",cdk().listValidator(cdk().validateString))(properties.acceleratorManufacturers)),errors.collect(cdk().propertyValidator("acceleratorNames",cdk().listValidator(cdk().validateString))(properties.acceleratorNames)),errors.collect(cdk().propertyValidator("acceleratorTotalMemoryMiB",CfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyValidator)(properties.acceleratorTotalMemoryMiB)),errors.collect(cdk().propertyValidator("acceleratorTypes",cdk().listValidator(cdk().validateString))(properties.acceleratorTypes)),errors.collect(cdk().propertyValidator("allowedInstanceTypes",cdk().listValidator(cdk().validateString))(properties.allowedInstanceTypes)),errors.collect(cdk().propertyValidator("bareMetal",cdk().validateString)(properties.bareMetal)),errors.collect(cdk().propertyValidator("baselineEbsBandwidthMbps",CfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyValidator)(properties.baselineEbsBandwidthMbps)),errors.collect(cdk().propertyValidator("baselinePerformanceFactors",CfnLaunchTemplateBaselinePerformanceFactorsPropertyValidator)(properties.baselinePerformanceFactors)),errors.collect(cdk().propertyValidator("burstablePerformance",cdk().validateString)(properties.burstablePerformance)),errors.collect(cdk().propertyValidator("cpuManufacturers",cdk().listValidator(cdk().validateString))(properties.cpuManufacturers)),errors.collect(cdk().propertyValidator("excludedInstanceTypes",cdk().listValidator(cdk().validateString))(properties.excludedInstanceTypes)),errors.collect(cdk().propertyValidator("instanceGenerations",cdk().listValidator(cdk().validateString))(properties.instanceGenerations)),errors.collect(cdk().propertyValidator("localStorage",cdk().validateString)(properties.localStorage)),errors.collect(cdk().propertyValidator("localStorageTypes",cdk().listValidator(cdk().validateString))(properties.localStorageTypes)),errors.collect(cdk().propertyValidator("maxSpotPriceAsPercentageOfOptimalOnDemandPrice",cdk().validateNumber)(properties.maxSpotPriceAsPercentageOfOptimalOnDemandPrice)),errors.collect(cdk().propertyValidator("memoryGiBPerVCpu",CfnLaunchTemplateMemoryGiBPerVCpuPropertyValidator)(properties.memoryGiBPerVCpu)),errors.collect(cdk().propertyValidator("memoryMiB",CfnLaunchTemplateMemoryMiBPropertyValidator)(properties.memoryMiB)),errors.collect(cdk().propertyValidator("networkBandwidthGbps",CfnLaunchTemplateNetworkBandwidthGbpsPropertyValidator)(properties.networkBandwidthGbps)),errors.collect(cdk().propertyValidator("networkInterfaceCount",CfnLaunchTemplateNetworkInterfaceCountPropertyValidator)(properties.networkInterfaceCount)),errors.collect(cdk().propertyValidator("onDemandMaxPricePercentageOverLowestPrice",cdk().validateNumber)(properties.onDemandMaxPricePercentageOverLowestPrice)),errors.collect(cdk().propertyValidator("requireHibernateSupport",cdk().validateBoolean)(properties.requireHibernateSupport)),errors.collect(cdk().propertyValidator("spotMaxPricePercentageOverLowestPrice",cdk().validateNumber)(properties.spotMaxPricePercentageOverLowestPrice)),errors.collect(cdk().propertyValidator("totalLocalStorageGb",CfnLaunchTemplateTotalLocalStorageGBPropertyValidator)(properties.totalLocalStorageGb)),errors.collect(cdk().propertyValidator("vCpuCount",CfnLaunchTemplateVCpuCountPropertyValidator)(properties.vCpuCount)),errors.wrap('supplied properties not correct for "InstanceRequirementsProperty"')}function convertCfnLaunchTemplateInstanceRequirementsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateInstanceRequirementsPropertyValidator(properties).assertSuccess(),{AcceleratorCount:convertCfnLaunchTemplateAcceleratorCountPropertyToCloudFormation(properties.acceleratorCount),AcceleratorManufacturers:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorManufacturers),AcceleratorNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorNames),AcceleratorTotalMemoryMiB:convertCfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyToCloudFormation(properties.acceleratorTotalMemoryMiB),AcceleratorTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorTypes),AllowedInstanceTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.allowedInstanceTypes),BareMetal:cdk().stringToCloudFormation(properties.bareMetal),BaselineEbsBandwidthMbps:convertCfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyToCloudFormation(properties.baselineEbsBandwidthMbps),BaselinePerformanceFactors:convertCfnLaunchTemplateBaselinePerformanceFactorsPropertyToCloudFormation(properties.baselinePerformanceFactors),BurstablePerformance:cdk().stringToCloudFormation(properties.burstablePerformance),CpuManufacturers:cdk().listMapper(cdk().stringToCloudFormation)(properties.cpuManufacturers),ExcludedInstanceTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.excludedInstanceTypes),InstanceGenerations:cdk().listMapper(cdk().stringToCloudFormation)(properties.instanceGenerations),LocalStorage:cdk().stringToCloudFormation(properties.localStorage),LocalStorageTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.localStorageTypes),MaxSpotPriceAsPercentageOfOptimalOnDemandPrice:cdk().numberToCloudFormation(properties.maxSpotPriceAsPercentageOfOptimalOnDemandPrice),MemoryGiBPerVCpu:convertCfnLaunchTemplateMemoryGiBPerVCpuPropertyToCloudFormation(properties.memoryGiBPerVCpu),MemoryMiB:convertCfnLaunchTemplateMemoryMiBPropertyToCloudFormation(properties.memoryMiB),NetworkBandwidthGbps:convertCfnLaunchTemplateNetworkBandwidthGbpsPropertyToCloudFormation(properties.networkBandwidthGbps),NetworkInterfaceCount:convertCfnLaunchTemplateNetworkInterfaceCountPropertyToCloudFormation(properties.networkInterfaceCount),OnDemandMaxPricePercentageOverLowestPrice:cdk().numberToCloudFormation(properties.onDemandMaxPricePercentageOverLowestPrice),RequireHibernateSupport:cdk().booleanToCloudFormation(properties.requireHibernateSupport),SpotMaxPricePercentageOverLowestPrice:cdk().numberToCloudFormation(properties.spotMaxPricePercentageOverLowestPrice),TotalLocalStorageGB:convertCfnLaunchTemplateTotalLocalStorageGBPropertyToCloudFormation(properties.totalLocalStorageGb),VCpuCount:convertCfnLaunchTemplateVCpuCountPropertyToCloudFormation(properties.vCpuCount)}):properties}function CfnLaunchTemplateInstanceRequirementsPropertyFromCloudFormation(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("acceleratorCount","AcceleratorCount",properties.AcceleratorCount!=null?CfnLaunchTemplateAcceleratorCountPropertyFromCloudFormation(properties.AcceleratorCount):void 0),ret.addPropertyResult("acceleratorManufacturers","AcceleratorManufacturers",properties.AcceleratorManufacturers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorManufacturers):void 0),ret.addPropertyResult("acceleratorNames","AcceleratorNames",properties.AcceleratorNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorNames):void 0),ret.addPropertyResult("acceleratorTotalMemoryMiB","AcceleratorTotalMemoryMiB",properties.AcceleratorTotalMemoryMiB!=null?CfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyFromCloudFormation(properties.AcceleratorTotalMemoryMiB):void 0),ret.addPropertyResult("acceleratorTypes","AcceleratorTypes",properties.AcceleratorTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorTypes):void 0),ret.addPropertyResult("allowedInstanceTypes","AllowedInstanceTypes",properties.AllowedInstanceTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AllowedInstanceTypes):void 0),ret.addPropertyResult("bareMetal","BareMetal",properties.BareMetal!=null?cfn_parse().FromCloudFormation.getString(properties.BareMetal):void 0),ret.addPropertyResult("baselineEbsBandwidthMbps","BaselineEbsBandwidthMbps",properties.BaselineEbsBandwidthMbps!=null?CfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyFromCloudFormation(properties.BaselineEbsBandwidthMbps):void 0),ret.addPropertyResult("baselinePerformanceFactors","BaselinePerformanceFactors",properties.BaselinePerformanceFactors!=null?CfnLaunchTemplateBaselinePerformanceFactorsPropertyFromCloudFormation(properties.BaselinePerformanceFactors):void 0),ret.addPropertyResult("burstablePerformance","BurstablePerformance",properties.BurstablePerformance!=null?cfn_parse().FromCloudFormation.getString(properties.BurstablePerformance):void 0),ret.addPropertyResult("cpuManufacturers","CpuManufacturers",properties.CpuManufacturers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CpuManufacturers):void 0),ret.addPropertyResult("excludedInstanceTypes","ExcludedInstanceTypes",properties.ExcludedInstanceTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExcludedInstanceTypes):void 0),ret.addPropertyResult("instanceGenerations","InstanceGenerations",properties.InstanceGenerations!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.InstanceGenerations):void 0),ret.addPropertyResult("localStorage","LocalStorage",properties.LocalStorage!=null?cfn_parse().FromCloudFormation.getString(properties.LocalStorage):void 0),ret.addPropertyResult("localStorageTypes","LocalStorageTypes",properties.LocalStorageTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.LocalStorageTypes):void 0),ret.addPropertyResult("maxSpotPriceAsPercentageOfOptimalOnDemandPrice","MaxSpotPriceAsPercentageOfOptimalOnDemandPrice",properties.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice):void 0),ret.addPropertyResult("memoryGiBPerVCpu","MemoryGiBPerVCpu",properties.MemoryGiBPerVCpu!=null?CfnLaunchTemplateMemoryGiBPerVCpuPropertyFromCloudFormation(properties.MemoryGiBPerVCpu):void 0),ret.addPropertyResult("memoryMiB","MemoryMiB",properties.MemoryMiB!=null?CfnLaunchTemplateMemoryMiBPropertyFromCloudFormation(properties.MemoryMiB):void 0),ret.addPropertyResult("networkBandwidthGbps","NetworkBandwidthGbps",properties.NetworkBandwidthGbps!=null?CfnLaunchTemplateNetworkBandwidthGbpsPropertyFromCloudFormation(properties.NetworkBandwidthGbps):void 0),ret.addPropertyResult("networkInterfaceCount","NetworkInterfaceCount",properties.NetworkInterfaceCount!=null?CfnLaunchTemplateNetworkInterfaceCountPropertyFromCloudFormation(properties.NetworkInterfaceCount):void 0),ret.addPropertyResult("onDemandMaxPricePercentageOverLowestPrice","OnDemandMaxPricePercentageOverLowestPrice",properties.OnDemandMaxPricePercentageOverLowestPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.OnDemandMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("requireHibernateSupport","RequireHibernateSupport",properties.RequireHibernateSupport!=null?cfn_parse().FromCloudFormation.getBoolean(properties.RequireHibernateSupport):void 0),ret.addPropertyResult("spotMaxPricePercentageOverLowestPrice","SpotMaxPricePercentageOverLowestPrice",properties.SpotMaxPricePercentageOverLowestPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.SpotMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("totalLocalStorageGb","TotalLocalStorageGB",properties.TotalLocalStorageGB!=null?CfnLaunchTemplateTotalLocalStorageGBPropertyFromCloudFormation(properties.TotalLocalStorageGB):void 0),ret.addPropertyResult("vCpuCount","VCpuCount",properties.VCpuCount!=null?CfnLaunchTemplateVCpuCountPropertyFromCloudFormation(properties.VCpuCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateCapacityReservationTargetPropertyValidator(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("capacityReservationId",cdk().validateString)(properties.capacityReservationId)),errors.collect(cdk().propertyValidator("capacityReservationResourceGroupArn",cdk().validateString)(properties.capacityReservationResourceGroupArn)),errors.wrap('supplied properties not correct for "CapacityReservationTargetProperty"')}function convertCfnLaunchTemplateCapacityReservationTargetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateCapacityReservationTargetPropertyValidator(properties).assertSuccess(),{CapacityReservationId:cdk().stringToCloudFormation(properties.capacityReservationId),CapacityReservationResourceGroupArn:cdk().stringToCloudFormation(properties.capacityReservationResourceGroupArn)}):properties}function CfnLaunchTemplateCapacityReservationTargetPropertyFromCloudFormation(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("capacityReservationId","CapacityReservationId",properties.CapacityReservationId!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityReservationId):void 0),ret.addPropertyResult("capacityReservationResourceGroupArn","CapacityReservationResourceGroupArn",properties.CapacityReservationResourceGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityReservationResourceGroupArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateCapacityReservationSpecificationPropertyValidator(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("capacityReservationPreference",cdk().validateString)(properties.capacityReservationPreference)),errors.collect(cdk().propertyValidator("capacityReservationTarget",CfnLaunchTemplateCapacityReservationTargetPropertyValidator)(properties.capacityReservationTarget)),errors.wrap('supplied properties not correct for "CapacityReservationSpecificationProperty"')}function convertCfnLaunchTemplateCapacityReservationSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateCapacityReservationSpecificationPropertyValidator(properties).assertSuccess(),{CapacityReservationPreference:cdk().stringToCloudFormation(properties.capacityReservationPreference),CapacityReservationTarget:convertCfnLaunchTemplateCapacityReservationTargetPropertyToCloudFormation(properties.capacityReservationTarget)}):properties}function CfnLaunchTemplateCapacityReservationSpecificationPropertyFromCloudFormation(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("capacityReservationPreference","CapacityReservationPreference",properties.CapacityReservationPreference!=null?cfn_parse().FromCloudFormation.getString(properties.CapacityReservationPreference):void 0),ret.addPropertyResult("capacityReservationTarget","CapacityReservationTarget",properties.CapacityReservationTarget!=null?CfnLaunchTemplateCapacityReservationTargetPropertyFromCloudFormation(properties.CapacityReservationTarget):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateCreditSpecificationPropertyValidator(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("cpuCredits",cdk().validateString)(properties.cpuCredits)),errors.wrap('supplied properties not correct for "CreditSpecificationProperty"')}function convertCfnLaunchTemplateCreditSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateCreditSpecificationPropertyValidator(properties).assertSuccess(),{CpuCredits:cdk().stringToCloudFormation(properties.cpuCredits)}):properties}function CfnLaunchTemplateCreditSpecificationPropertyFromCloudFormation(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("cpuCredits","CpuCredits",properties.CpuCredits!=null?cfn_parse().FromCloudFormation.getString(properties.CpuCredits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateNetworkPerformanceOptionsPropertyValidator(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("bandwidthWeighting",cdk().validateString)(properties.bandwidthWeighting)),errors.wrap('supplied properties not correct for "NetworkPerformanceOptionsProperty"')}function convertCfnLaunchTemplateNetworkPerformanceOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateNetworkPerformanceOptionsPropertyValidator(properties).assertSuccess(),{BandwidthWeighting:cdk().stringToCloudFormation(properties.bandwidthWeighting)}):properties}function CfnLaunchTemplateNetworkPerformanceOptionsPropertyFromCloudFormation(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("bandwidthWeighting","BandwidthWeighting",properties.BandwidthWeighting!=null?cfn_parse().FromCloudFormation.getString(properties.BandwidthWeighting):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateLaunchTemplateDataPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("blockDeviceMappings",cdk().listValidator(CfnLaunchTemplateBlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk().propertyValidator("capacityReservationSpecification",CfnLaunchTemplateCapacityReservationSpecificationPropertyValidator)(properties.capacityReservationSpecification)),errors.collect(cdk().propertyValidator("cpuOptions",CfnLaunchTemplateCpuOptionsPropertyValidator)(properties.cpuOptions)),errors.collect(cdk().propertyValidator("creditSpecification",CfnLaunchTemplateCreditSpecificationPropertyValidator)(properties.creditSpecification)),errors.collect(cdk().propertyValidator("disableApiStop",cdk().validateBoolean)(properties.disableApiStop)),errors.collect(cdk().propertyValidator("disableApiTermination",cdk().validateBoolean)(properties.disableApiTermination)),errors.collect(cdk().propertyValidator("ebsOptimized",cdk().validateBoolean)(properties.ebsOptimized)),errors.collect(cdk().propertyValidator("elasticGpuSpecifications",cdk().listValidator(CfnLaunchTemplateElasticGpuSpecificationPropertyValidator))(properties.elasticGpuSpecifications)),errors.collect(cdk().propertyValidator("elasticInferenceAccelerators",cdk().listValidator(CfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyValidator))(properties.elasticInferenceAccelerators)),errors.collect(cdk().propertyValidator("enclaveOptions",CfnLaunchTemplateEnclaveOptionsPropertyValidator)(properties.enclaveOptions)),errors.collect(cdk().propertyValidator("hibernationOptions",CfnLaunchTemplateHibernationOptionsPropertyValidator)(properties.hibernationOptions)),errors.collect(cdk().propertyValidator("iamInstanceProfile",CfnLaunchTemplateIamInstanceProfilePropertyValidator)(properties.iamInstanceProfile)),errors.collect(cdk().propertyValidator("imageId",cdk().validateString)(properties.imageId)),errors.collect(cdk().propertyValidator("instanceInitiatedShutdownBehavior",cdk().validateString)(properties.instanceInitiatedShutdownBehavior)),errors.collect(cdk().propertyValidator("instanceMarketOptions",CfnLaunchTemplateInstanceMarketOptionsPropertyValidator)(properties.instanceMarketOptions)),errors.collect(cdk().propertyValidator("instanceRequirements",CfnLaunchTemplateInstanceRequirementsPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("kernelId",cdk().validateString)(properties.kernelId)),errors.collect(cdk().propertyValidator("keyName",cdk().validateString)(properties.keyName)),errors.collect(cdk().propertyValidator("licenseSpecifications",cdk().listValidator(CfnLaunchTemplateLicenseSpecificationPropertyValidator))(properties.licenseSpecifications)),errors.collect(cdk().propertyValidator("maintenanceOptions",CfnLaunchTemplateMaintenanceOptionsPropertyValidator)(properties.maintenanceOptions)),errors.collect(cdk().propertyValidator("metadataOptions",CfnLaunchTemplateMetadataOptionsPropertyValidator)(properties.metadataOptions)),errors.collect(cdk().propertyValidator("monitoring",CfnLaunchTemplateMonitoringPropertyValidator)(properties.monitoring)),errors.collect(cdk().propertyValidator("networkInterfaces",cdk().listValidator(CfnLaunchTemplateNetworkInterfacePropertyValidator))(properties.networkInterfaces)),errors.collect(cdk().propertyValidator("networkPerformanceOptions",CfnLaunchTemplateNetworkPerformanceOptionsPropertyValidator)(properties.networkPerformanceOptions)),errors.collect(cdk().propertyValidator("placement",CfnLaunchTemplatePlacementPropertyValidator)(properties.placement)),errors.collect(cdk().propertyValidator("privateDnsNameOptions",CfnLaunchTemplatePrivateDnsNameOptionsPropertyValidator)(properties.privateDnsNameOptions)),errors.collect(cdk().propertyValidator("ramDiskId",cdk().validateString)(properties.ramDiskId)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().listValidator(cdk().validateString))(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("securityGroups",cdk().listValidator(cdk().validateString))(properties.securityGroups)),errors.collect(cdk().propertyValidator("tagSpecifications",cdk().listValidator(CfnLaunchTemplateTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk().propertyValidator("userData",cdk().validateString)(properties.userData)),errors.wrap('supplied properties not correct for "LaunchTemplateDataProperty"')}function convertCfnLaunchTemplateLaunchTemplateDataPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateLaunchTemplateDataPropertyValidator(properties).assertSuccess(),{BlockDeviceMappings:cdk().listMapper(convertCfnLaunchTemplateBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),CapacityReservationSpecification:convertCfnLaunchTemplateCapacityReservationSpecificationPropertyToCloudFormation(properties.capacityReservationSpecification),CpuOptions:convertCfnLaunchTemplateCpuOptionsPropertyToCloudFormation(properties.cpuOptions),CreditSpecification:convertCfnLaunchTemplateCreditSpecificationPropertyToCloudFormation(properties.creditSpecification),DisableApiStop:cdk().booleanToCloudFormation(properties.disableApiStop),DisableApiTermination:cdk().booleanToCloudFormation(properties.disableApiTermination),EbsOptimized:cdk().booleanToCloudFormation(properties.ebsOptimized),ElasticGpuSpecifications:cdk().listMapper(convertCfnLaunchTemplateElasticGpuSpecificationPropertyToCloudFormation)(properties.elasticGpuSpecifications),ElasticInferenceAccelerators:cdk().listMapper(convertCfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyToCloudFormation)(properties.elasticInferenceAccelerators),EnclaveOptions:convertCfnLaunchTemplateEnclaveOptionsPropertyToCloudFormation(properties.enclaveOptions),HibernationOptions:convertCfnLaunchTemplateHibernationOptionsPropertyToCloudFormation(properties.hibernationOptions),IamInstanceProfile:convertCfnLaunchTemplateIamInstanceProfilePropertyToCloudFormation(properties.iamInstanceProfile),ImageId:cdk().stringToCloudFormation(properties.imageId),InstanceInitiatedShutdownBehavior:cdk().stringToCloudFormation(properties.instanceInitiatedShutdownBehavior),InstanceMarketOptions:convertCfnLaunchTemplateInstanceMarketOptionsPropertyToCloudFormation(properties.instanceMarketOptions),InstanceRequirements:convertCfnLaunchTemplateInstanceRequirementsPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk().stringToCloudFormation(properties.instanceType),KernelId:cdk().stringToCloudFormation(properties.kernelId),KeyName:cdk().stringToCloudFormation(properties.keyName),LicenseSpecifications:cdk().listMapper(convertCfnLaunchTemplateLicenseSpecificationPropertyToCloudFormation)(properties.licenseSpecifications),MaintenanceOptions:convertCfnLaunchTemplateMaintenanceOptionsPropertyToCloudFormation(properties.maintenanceOptions),MetadataOptions:convertCfnLaunchTemplateMetadataOptionsPropertyToCloudFormation(properties.metadataOptions),Monitoring:convertCfnLaunchTemplateMonitoringPropertyToCloudFormation(properties.monitoring),NetworkInterfaces:cdk().listMapper(convertCfnLaunchTemplateNetworkInterfacePropertyToCloudFormation)(properties.networkInterfaces),NetworkPerformanceOptions:convertCfnLaunchTemplateNetworkPerformanceOptionsPropertyToCloudFormation(properties.networkPerformanceOptions),Placement:convertCfnLaunchTemplatePlacementPropertyToCloudFormation(properties.placement),PrivateDnsNameOptions:convertCfnLaunchTemplatePrivateDnsNameOptionsPropertyToCloudFormation(properties.privateDnsNameOptions),RamDiskId:cdk().stringToCloudFormation(properties.ramDiskId),SecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroupIds),SecurityGroups:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroups),TagSpecifications:cdk().listMapper(convertCfnLaunchTemplateTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),UserData:cdk().stringToCloudFormation(properties.userData)}):properties}function CfnLaunchTemplateLaunchTemplateDataPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplateBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("capacityReservationSpecification","CapacityReservationSpecification",properties.CapacityReservationSpecification!=null?CfnLaunchTemplateCapacityReservationSpecificationPropertyFromCloudFormation(properties.CapacityReservationSpecification):void 0),ret.addPropertyResult("cpuOptions","CpuOptions",properties.CpuOptions!=null?CfnLaunchTemplateCpuOptionsPropertyFromCloudFormation(properties.CpuOptions):void 0),ret.addPropertyResult("creditSpecification","CreditSpecification",properties.CreditSpecification!=null?CfnLaunchTemplateCreditSpecificationPropertyFromCloudFormation(properties.CreditSpecification):void 0),ret.addPropertyResult("disableApiStop","DisableApiStop",properties.DisableApiStop!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DisableApiStop):void 0),ret.addPropertyResult("disableApiTermination","DisableApiTermination",properties.DisableApiTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DisableApiTermination):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("elasticGpuSpecifications","ElasticGpuSpecifications",properties.ElasticGpuSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplateElasticGpuSpecificationPropertyFromCloudFormation)(properties.ElasticGpuSpecifications):void 0),ret.addPropertyResult("elasticInferenceAccelerators","ElasticInferenceAccelerators",properties.ElasticInferenceAccelerators!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyFromCloudFormation)(properties.ElasticInferenceAccelerators):void 0),ret.addPropertyResult("enclaveOptions","EnclaveOptions",properties.EnclaveOptions!=null?CfnLaunchTemplateEnclaveOptionsPropertyFromCloudFormation(properties.EnclaveOptions):void 0),ret.addPropertyResult("hibernationOptions","HibernationOptions",properties.HibernationOptions!=null?CfnLaunchTemplateHibernationOptionsPropertyFromCloudFormation(properties.HibernationOptions):void 0),ret.addPropertyResult("iamInstanceProfile","IamInstanceProfile",properties.IamInstanceProfile!=null?CfnLaunchTemplateIamInstanceProfilePropertyFromCloudFormation(properties.IamInstanceProfile):void 0),ret.addPropertyResult("imageId","ImageId",properties.ImageId!=null?cfn_parse().FromCloudFormation.getString(properties.ImageId):void 0),ret.addPropertyResult("instanceInitiatedShutdownBehavior","InstanceInitiatedShutdownBehavior",properties.InstanceInitiatedShutdownBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceInitiatedShutdownBehavior):void 0),ret.addPropertyResult("instanceMarketOptions","InstanceMarketOptions",properties.InstanceMarketOptions!=null?CfnLaunchTemplateInstanceMarketOptionsPropertyFromCloudFormation(properties.InstanceMarketOptions):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnLaunchTemplateInstanceRequirementsPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("kernelId","KernelId",properties.KernelId!=null?cfn_parse().FromCloudFormation.getString(properties.KernelId):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse().FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("licenseSpecifications","LicenseSpecifications",properties.LicenseSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplateLicenseSpecificationPropertyFromCloudFormation)(properties.LicenseSpecifications):void 0),ret.addPropertyResult("maintenanceOptions","MaintenanceOptions",properties.MaintenanceOptions!=null?CfnLaunchTemplateMaintenanceOptionsPropertyFromCloudFormation(properties.MaintenanceOptions):void 0),ret.addPropertyResult("metadataOptions","MetadataOptions",properties.MetadataOptions!=null?CfnLaunchTemplateMetadataOptionsPropertyFromCloudFormation(properties.MetadataOptions):void 0),ret.addPropertyResult("monitoring","Monitoring",properties.Monitoring!=null?CfnLaunchTemplateMonitoringPropertyFromCloudFormation(properties.Monitoring):void 0),ret.addPropertyResult("networkInterfaces","NetworkInterfaces",properties.NetworkInterfaces!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplateNetworkInterfacePropertyFromCloudFormation)(properties.NetworkInterfaces):void 0),ret.addPropertyResult("networkPerformanceOptions","NetworkPerformanceOptions",properties.NetworkPerformanceOptions!=null?CfnLaunchTemplateNetworkPerformanceOptionsPropertyFromCloudFormation(properties.NetworkPerformanceOptions):void 0),ret.addPropertyResult("placement","Placement",properties.Placement!=null?CfnLaunchTemplatePlacementPropertyFromCloudFormation(properties.Placement):void 0),ret.addPropertyResult("privateDnsNameOptions","PrivateDnsNameOptions",properties.PrivateDnsNameOptions!=null?CfnLaunchTemplatePrivateDnsNameOptionsPropertyFromCloudFormation(properties.PrivateDnsNameOptions):void 0),ret.addPropertyResult("ramDiskId","RamDiskId",properties.RamDiskId!=null?cfn_parse().FromCloudFormation.getString(properties.RamDiskId):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroupIds):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroups):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplateTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("userData","UserData",properties.UserData!=null?cfn_parse().FromCloudFormation.getString(properties.UserData):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplateLaunchTemplateTagSpecificationPropertyValidator(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("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "LaunchTemplateTagSpecificationProperty"')}function convertCfnLaunchTemplateLaunchTemplateTagSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplateLaunchTemplateTagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk().stringToCloudFormation(properties.resourceType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLaunchTemplateLaunchTemplateTagSpecificationPropertyFromCloudFormation(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("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):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}function CfnLaunchTemplatePropsValidator(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("launchTemplateData",cdk().requiredValidator)(properties.launchTemplateData)),errors.collect(cdk().propertyValidator("launchTemplateData",CfnLaunchTemplateLaunchTemplateDataPropertyValidator)(properties.launchTemplateData)),errors.collect(cdk().propertyValidator("launchTemplateName",cdk().validateString)(properties.launchTemplateName)),errors.collect(cdk().propertyValidator("tagSpecifications",cdk().listValidator(CfnLaunchTemplateLaunchTemplateTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk().propertyValidator("versionDescription",cdk().validateString)(properties.versionDescription)),errors.wrap('supplied properties not correct for "CfnLaunchTemplateProps"')}function convertCfnLaunchTemplatePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLaunchTemplatePropsValidator(properties).assertSuccess(),{LaunchTemplateData:convertCfnLaunchTemplateLaunchTemplateDataPropertyToCloudFormation(properties.launchTemplateData),LaunchTemplateName:cdk().stringToCloudFormation(properties.launchTemplateName),TagSpecifications:cdk().listMapper(convertCfnLaunchTemplateLaunchTemplateTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),VersionDescription:cdk().stringToCloudFormation(properties.versionDescription)}):properties}function CfnLaunchTemplatePropsFromCloudFormation(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("launchTemplateData","LaunchTemplateData",properties.LaunchTemplateData!=null?CfnLaunchTemplateLaunchTemplateDataPropertyFromCloudFormation(properties.LaunchTemplateData):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnLaunchTemplateLaunchTemplateTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("versionDescription","VersionDescription",properties.VersionDescription!=null?cfn_parse().FromCloudFormation.getString(properties.VersionDescription):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLocalGatewayRoute extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnLocalGatewayRoute",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::LocalGatewayRoute";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLocalGatewayRoutePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLocalGatewayRoute(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 isCfnLocalGatewayRoute(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLocalGatewayRoute.CFN_RESOURCE_TYPE_NAME}_destinationCidrBlock;_localGatewayRouteTableId;_localGatewayVirtualInterfaceGroupId;_networkInterfaceId;cfnPropertyNames={destinationCidrBlock:"DestinationCidrBlock",localGatewayRouteTableId:"LocalGatewayRouteTableId",localGatewayVirtualInterfaceGroupId:"LocalGatewayVirtualInterfaceGroupId",networkInterfaceId:"NetworkInterfaceId"};constructor(scope,id,props){super(scope,id,{type:CfnLocalGatewayRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnLocalGatewayRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLocalGatewayRoute),error}cdk().requireProperty(props,"destinationCidrBlock",this),cdk().requireProperty(props,"localGatewayRouteTableId",this),this._destinationCidrBlock=props.destinationCidrBlock,this._localGatewayRouteTableId=props.localGatewayRouteTableId,this._localGatewayVirtualInterfaceGroupId=props.localGatewayVirtualInterfaceGroupId,this._networkInterfaceId=props.networkInterfaceId}get localGatewayRouteRef(){return{destinationCidrBlock:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),localGatewayRouteTableId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get destinationCidrBlock(){return this._destinationCidrBlock}set destinationCidrBlock(value){cdk().traceProperty(this.node,"DestinationCidrBlock"),this._destinationCidrBlock=value}get localGatewayRouteTableId(){return this._localGatewayRouteTableId}set localGatewayRouteTableId(value){cdk().traceProperty(this.node,"LocalGatewayRouteTableId"),this._localGatewayRouteTableId=value}get localGatewayVirtualInterfaceGroupId(){return this._localGatewayVirtualInterfaceGroupId}set localGatewayVirtualInterfaceGroupId(value){cdk().traceProperty(this.node,"LocalGatewayVirtualInterfaceGroupId"),this._localGatewayVirtualInterfaceGroupId=value}get networkInterfaceId(){return this._networkInterfaceId}set networkInterfaceId(value){cdk().traceProperty(this.node,"NetworkInterfaceId"),this._networkInterfaceId=value}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrType(){return cdk().Token.asString(this.getAtt("Type",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{destinationCidrBlock:this._destinationCidrBlock,localGatewayRouteTableId:this._localGatewayRouteTableId,localGatewayVirtualInterfaceGroupId:this._localGatewayVirtualInterfaceGroupId,networkInterfaceId:this._networkInterfaceId}}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",CfnLocalGatewayRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLocalGatewayRoutePropsToCloudFormation(props)}}exports.CfnLocalGatewayRoute=CfnLocalGatewayRoute;function CfnLocalGatewayRoutePropsValidator(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("destinationCidrBlock",cdk().requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("destinationCidrBlock",cdk().validateString)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("localGatewayRouteTableId",cdk().requiredValidator)(properties.localGatewayRouteTableId)),errors.collect(cdk().propertyValidator("localGatewayRouteTableId",cdk().validateString)(properties.localGatewayRouteTableId)),errors.collect(cdk().propertyValidator("localGatewayVirtualInterfaceGroupId",cdk().validateString)(properties.localGatewayVirtualInterfaceGroupId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.wrap('supplied properties not correct for "CfnLocalGatewayRouteProps"')}function convertCfnLocalGatewayRoutePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLocalGatewayRoutePropsValidator(properties).assertSuccess(),{DestinationCidrBlock:cdk().stringToCloudFormation(properties.destinationCidrBlock),LocalGatewayRouteTableId:cdk().stringToCloudFormation(properties.localGatewayRouteTableId),LocalGatewayVirtualInterfaceGroupId:cdk().stringToCloudFormation(properties.localGatewayVirtualInterfaceGroupId),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId)}):properties}function CfnLocalGatewayRoutePropsFromCloudFormation(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("destinationCidrBlock","DestinationCidrBlock",properties.DestinationCidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationCidrBlock):void 0),ret.addPropertyResult("localGatewayRouteTableId","LocalGatewayRouteTableId",properties.LocalGatewayRouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.LocalGatewayRouteTableId):void 0),ret.addPropertyResult("localGatewayVirtualInterfaceGroupId","LocalGatewayVirtualInterfaceGroupId",properties.LocalGatewayVirtualInterfaceGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.LocalGatewayVirtualInterfaceGroupId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLocalGatewayRouteTable extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnLocalGatewayRouteTable",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::LocalGatewayRouteTable";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLocalGatewayRouteTablePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLocalGatewayRouteTable(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 isCfnLocalGatewayRouteTable(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLocalGatewayRouteTable.CFN_RESOURCE_TYPE_NAME}static arnForLocalGatewayRouteTable(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ILocalGatewayRouteTableRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForLocalGatewayRouteTable),error}return resource.localGatewayRouteTableRef.localGatewayRouteTableArn}_localGatewayId;_mode;tags;_tagsRaw;cfnPropertyNames={localGatewayId:"LocalGatewayId",mode:"Mode",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnLocalGatewayRouteTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnLocalGatewayRouteTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLocalGatewayRouteTable),error}cdk().requireProperty(props,"localGatewayId",this),this._localGatewayId=props.localGatewayId,this._mode=props.mode,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::LocalGatewayRouteTable",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get localGatewayRouteTableRef(){return{localGatewayRouteTableId:this.ref,localGatewayRouteTableArn:this.attrLocalGatewayRouteTableArn}}get localGatewayId(){return this._localGatewayId}set localGatewayId(value){cdk().traceProperty(this.node,"LocalGatewayId"),this._localGatewayId=value}get mode(){return this._mode}set mode(value){cdk().traceProperty(this.node,"Mode"),this._mode=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrLocalGatewayRouteTableArn(){return cdk().Token.asString(this.getAtt("LocalGatewayRouteTableArn",cdk().ResolutionTypeHint.STRING))}get attrLocalGatewayRouteTableId(){return cdk().Token.asString(this.getAtt("LocalGatewayRouteTableId",cdk().ResolutionTypeHint.STRING))}get attrOutpostArn(){return cdk().Token.asString(this.getAtt("OutpostArn",cdk().ResolutionTypeHint.STRING))}get attrOwnerId(){return cdk().Token.asString(this.getAtt("OwnerId",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{localGatewayId:this._localGatewayId,mode:this._mode,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",CfnLocalGatewayRouteTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLocalGatewayRouteTablePropsToCloudFormation(props)}}exports.CfnLocalGatewayRouteTable=CfnLocalGatewayRouteTable;function CfnLocalGatewayRouteTablePropsValidator(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("localGatewayId",cdk().requiredValidator)(properties.localGatewayId)),errors.collect(cdk().propertyValidator("localGatewayId",cdk().validateString)(properties.localGatewayId)),errors.collect(cdk().propertyValidator("mode",cdk().validateString)(properties.mode)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnLocalGatewayRouteTableProps"')}function convertCfnLocalGatewayRouteTablePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLocalGatewayRouteTablePropsValidator(properties).assertSuccess(),{LocalGatewayId:cdk().stringToCloudFormation(properties.localGatewayId),Mode:cdk().stringToCloudFormation(properties.mode),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLocalGatewayRouteTablePropsFromCloudFormation(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("localGatewayId","LocalGatewayId",properties.LocalGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.LocalGatewayId):void 0),ret.addPropertyResult("mode","Mode",properties.Mode!=null?cfn_parse().FromCloudFormation.getString(properties.Mode):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 CfnLocalGatewayRouteTableVPCAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnLocalGatewayRouteTableVPCAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::LocalGatewayRouteTableVPCAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLocalGatewayRouteTableVPCAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLocalGatewayRouteTableVPCAssociation(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 isCfnLocalGatewayRouteTableVPCAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLocalGatewayRouteTableVPCAssociation.CFN_RESOURCE_TYPE_NAME}static fromLocalGatewayRouteTableVpcAssociationId(scope,id,localGatewayRouteTableVpcAssociationId){class Import extends cdk().Resource{localGatewayRouteTableVpcAssociationRef;constructor(scope2,id2,localGatewayRouteTableVpcAssociationId2){super(scope2,id2),this.localGatewayRouteTableVpcAssociationRef={localGatewayRouteTableVpcAssociationId:localGatewayRouteTableVpcAssociationId2}}}return new Import(scope,id,localGatewayRouteTableVpcAssociationId)}static arnForLocalGatewayRouteTableVPCAssociation(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ILocalGatewayRouteTableVPCAssociationRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForLocalGatewayRouteTableVPCAssociation),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:local-gateway-route-table-vpc-association/${LocalGatewayRouteTableVpcAssociationId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,LocalGatewayRouteTableVpcAssociationId:resource.localGatewayRouteTableVpcAssociationRef.localGatewayRouteTableVpcAssociationId})}_localGatewayRouteTableId;tags;_tagsRaw;_vpcId;cfnPropertyNames={localGatewayRouteTableId:"LocalGatewayRouteTableId",tags:"Tags",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnLocalGatewayRouteTableVPCAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnLocalGatewayRouteTableVPCAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLocalGatewayRouteTableVPCAssociation),error}cdk().requireProperty(props,"localGatewayRouteTableId",this),cdk().requireProperty(props,"vpcId",this),this._localGatewayRouteTableId=props.localGatewayRouteTableId,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::LocalGatewayRouteTableVPCAssociation",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get localGatewayRouteTableVpcAssociationRef(){return{localGatewayRouteTableVpcAssociationId:this.ref}}get localGatewayRouteTableId(){return this._localGatewayRouteTableId}set localGatewayRouteTableId(value){cdk().traceProperty(this.node,"LocalGatewayRouteTableId"),this._localGatewayRouteTableId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrLocalGatewayId(){return cdk().Token.asString(this.getAtt("LocalGatewayId",cdk().ResolutionTypeHint.STRING))}get attrLocalGatewayRouteTableVpcAssociationId(){return cdk().Token.asString(this.getAtt("LocalGatewayRouteTableVpcAssociationId",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{localGatewayRouteTableId:this._localGatewayRouteTableId,tags:this.tags.renderTags(),vpcId:this._vpcId}}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",CfnLocalGatewayRouteTableVPCAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLocalGatewayRouteTableVPCAssociationPropsToCloudFormation(props)}}exports.CfnLocalGatewayRouteTableVPCAssociation=CfnLocalGatewayRouteTableVPCAssociation;function CfnLocalGatewayRouteTableVPCAssociationPropsValidator(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("localGatewayRouteTableId",cdk().requiredValidator)(properties.localGatewayRouteTableId)),errors.collect(cdk().propertyValidator("localGatewayRouteTableId",cdk().validateString)(properties.localGatewayRouteTableId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnLocalGatewayRouteTableVPCAssociationProps"')}function convertCfnLocalGatewayRouteTableVPCAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLocalGatewayRouteTableVPCAssociationPropsValidator(properties).assertSuccess(),{LocalGatewayRouteTableId:cdk().stringToCloudFormation(properties.localGatewayRouteTableId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnLocalGatewayRouteTableVPCAssociationPropsFromCloudFormation(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("localGatewayRouteTableId","LocalGatewayRouteTableId",properties.LocalGatewayRouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.LocalGatewayRouteTableId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation(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 isCfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation.CFN_RESOURCE_TYPE_NAME}static fromLocalGatewayRouteTableVirtualInterfaceGroupAssociationId(scope,id,localGatewayRouteTableVirtualInterfaceGroupAssociationId){class Import extends cdk().Resource{localGatewayRouteTableVirtualInterfaceGroupAssociationRef;constructor(scope2,id2,localGatewayRouteTableVirtualInterfaceGroupAssociationId2){super(scope2,id2),this.localGatewayRouteTableVirtualInterfaceGroupAssociationRef={localGatewayRouteTableVirtualInterfaceGroupAssociationId:localGatewayRouteTableVirtualInterfaceGroupAssociationId2}}}return new Import(scope,id,localGatewayRouteTableVirtualInterfaceGroupAssociationId)}static arnForLocalGatewayRouteTableVirtualInterfaceGroupAssociation(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ILocalGatewayRouteTableVirtualInterfaceGroupAssociationRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForLocalGatewayRouteTableVirtualInterfaceGroupAssociation),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:local-gateway-route-table-virtual-interface-group-association/${LocalGatewayRouteTableVirtualInterfaceGroupAssociationId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,LocalGatewayRouteTableVirtualInterfaceGroupAssociationId:resource.localGatewayRouteTableVirtualInterfaceGroupAssociationRef.localGatewayRouteTableVirtualInterfaceGroupAssociationId})}_localGatewayRouteTableId;_localGatewayVirtualInterfaceGroupId;tags;_tagsRaw;cfnPropertyNames={localGatewayRouteTableId:"LocalGatewayRouteTableId",localGatewayVirtualInterfaceGroupId:"LocalGatewayVirtualInterfaceGroupId",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation),error}cdk().requireProperty(props,"localGatewayRouteTableId",this),cdk().requireProperty(props,"localGatewayVirtualInterfaceGroupId",this),this._localGatewayRouteTableId=props.localGatewayRouteTableId,this._localGatewayVirtualInterfaceGroupId=props.localGatewayVirtualInterfaceGroupId,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get localGatewayRouteTableVirtualInterfaceGroupAssociationRef(){return{localGatewayRouteTableVirtualInterfaceGroupAssociationId:this.ref}}get localGatewayRouteTableId(){return this._localGatewayRouteTableId}set localGatewayRouteTableId(value){cdk().traceProperty(this.node,"LocalGatewayRouteTableId"),this._localGatewayRouteTableId=value}get localGatewayVirtualInterfaceGroupId(){return this._localGatewayVirtualInterfaceGroupId}set localGatewayVirtualInterfaceGroupId(value){cdk().traceProperty(this.node,"LocalGatewayVirtualInterfaceGroupId"),this._localGatewayVirtualInterfaceGroupId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrLocalGatewayId(){return cdk().Token.asString(this.getAtt("LocalGatewayId",cdk().ResolutionTypeHint.STRING))}get attrLocalGatewayRouteTableArn(){return cdk().Token.asString(this.getAtt("LocalGatewayRouteTableArn",cdk().ResolutionTypeHint.STRING))}get attrLocalGatewayRouteTableVirtualInterfaceGroupAssociationId(){return cdk().Token.asString(this.getAtt("LocalGatewayRouteTableVirtualInterfaceGroupAssociationId",cdk().ResolutionTypeHint.STRING))}get attrOwnerId(){return cdk().Token.asString(this.getAtt("OwnerId",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{localGatewayRouteTableId:this._localGatewayRouteTableId,localGatewayVirtualInterfaceGroupId:this._localGatewayVirtualInterfaceGroupId,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",CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsToCloudFormation(props)}}exports.CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation=CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociation;function CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsValidator(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("localGatewayRouteTableId",cdk().requiredValidator)(properties.localGatewayRouteTableId)),errors.collect(cdk().propertyValidator("localGatewayRouteTableId",cdk().validateString)(properties.localGatewayRouteTableId)),errors.collect(cdk().propertyValidator("localGatewayVirtualInterfaceGroupId",cdk().requiredValidator)(properties.localGatewayVirtualInterfaceGroupId)),errors.collect(cdk().propertyValidator("localGatewayVirtualInterfaceGroupId",cdk().validateString)(properties.localGatewayVirtualInterfaceGroupId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationProps"')}function convertCfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsValidator(properties).assertSuccess(),{LocalGatewayRouteTableId:cdk().stringToCloudFormation(properties.localGatewayRouteTableId),LocalGatewayVirtualInterfaceGroupId:cdk().stringToCloudFormation(properties.localGatewayVirtualInterfaceGroupId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsFromCloudFormation(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("localGatewayRouteTableId","LocalGatewayRouteTableId",properties.LocalGatewayRouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.LocalGatewayRouteTableId):void 0),ret.addPropertyResult("localGatewayVirtualInterfaceGroupId","LocalGatewayVirtualInterfaceGroupId",properties.LocalGatewayVirtualInterfaceGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.LocalGatewayVirtualInterfaceGroupId):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 CfnNatGateway extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnNatGateway",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::NatGateway";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNatGatewayPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnNatGateway(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 isCfnNatGateway(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnNatGateway.CFN_RESOURCE_TYPE_NAME}static fromNatGatewayId(scope,id,natGatewayId){class Import extends cdk().Resource{natGatewayRef;constructor(scope2,id2,natGatewayId2){super(scope2,id2),this.natGatewayRef={natGatewayId:natGatewayId2}}}return new Import(scope,id,natGatewayId)}static arnForNatGateway(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_INatGatewayRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForNatGateway),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:natgateway/${NatGatewayId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,NatGatewayId:resource.natGatewayRef.natGatewayId})}_allocationId;_availabilityMode;_availabilityZoneAddresses;_connectivityType;_maxDrainDurationSeconds;_privateIpAddress;_secondaryAllocationIds;_secondaryPrivateIpAddressCount;_secondaryPrivateIpAddresses;_subnetId;tags;_tagsRaw;_vpcId;cfnPropertyNames={allocationId:"AllocationId",availabilityMode:"AvailabilityMode",availabilityZoneAddresses:"AvailabilityZoneAddresses",connectivityType:"ConnectivityType",maxDrainDurationSeconds:"MaxDrainDurationSeconds",privateIpAddress:"PrivateIpAddress",secondaryAllocationIds:"SecondaryAllocationIds",secondaryPrivateIpAddressCount:"SecondaryPrivateIpAddressCount",secondaryPrivateIpAddresses:"SecondaryPrivateIpAddresses",subnetId:"SubnetId",tags:"Tags",vpcId:"VpcId"};constructor(scope,id,props={}){super(scope,id,{type:CfnNatGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnNatGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNatGateway),error}this._allocationId=cdk().getRefProperty(props.allocationId?.eipRef,"allocationId")??cdk().ensureStringOrUndefined(props.allocationId,"allocationId","ec2.IEIPRef | string"),this._availabilityMode=props.availabilityMode,this._availabilityZoneAddresses=props.availabilityZoneAddresses,this._connectivityType=props.connectivityType,this._maxDrainDurationSeconds=props.maxDrainDurationSeconds,this._privateIpAddress=props.privateIpAddress,this._secondaryAllocationIds=props.secondaryAllocationIds,this._secondaryPrivateIpAddressCount=props.secondaryPrivateIpAddressCount,this._secondaryPrivateIpAddresses=props.secondaryPrivateIpAddresses,this._subnetId=cdk().getRefProperty(props.subnetId?.subnetRef,"subnetId")??cdk().ensureStringOrUndefined(props.subnetId,"subnetId","ec2.ISubnetRef | string"),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::NatGateway",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._vpcId=props.vpcId}get natGatewayRef(){return{natGatewayId:this.ref}}get allocationId(){return this._allocationId}set allocationId(value){cdk().traceProperty(this.node,"AllocationId"),this._allocationId=value}get availabilityMode(){return this._availabilityMode}set availabilityMode(value){cdk().traceProperty(this.node,"AvailabilityMode"),this._availabilityMode=value}get availabilityZoneAddresses(){return this._availabilityZoneAddresses}set availabilityZoneAddresses(value){cdk().traceProperty(this.node,"AvailabilityZoneAddresses"),this._availabilityZoneAddresses=value}get connectivityType(){return this._connectivityType}set connectivityType(value){cdk().traceProperty(this.node,"ConnectivityType"),this._connectivityType=value}get maxDrainDurationSeconds(){return this._maxDrainDurationSeconds}set maxDrainDurationSeconds(value){cdk().traceProperty(this.node,"MaxDrainDurationSeconds"),this._maxDrainDurationSeconds=value}get privateIpAddress(){return this._privateIpAddress}set privateIpAddress(value){cdk().traceProperty(this.node,"PrivateIpAddress"),this._privateIpAddress=value}get secondaryAllocationIds(){return this._secondaryAllocationIds}set secondaryAllocationIds(value){cdk().traceProperty(this.node,"SecondaryAllocationIds"),this._secondaryAllocationIds=value}get secondaryPrivateIpAddressCount(){return this._secondaryPrivateIpAddressCount}set secondaryPrivateIpAddressCount(value){cdk().traceProperty(this.node,"SecondaryPrivateIpAddressCount"),this._secondaryPrivateIpAddressCount=value}get secondaryPrivateIpAddresses(){return this._secondaryPrivateIpAddresses}set secondaryPrivateIpAddresses(value){cdk().traceProperty(this.node,"SecondaryPrivateIpAddresses"),this._secondaryPrivateIpAddresses=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrAutoProvisionZones(){return cdk().Token.asString(this.getAtt("AutoProvisionZones",cdk().ResolutionTypeHint.STRING))}get attrAutoScalingIps(){return cdk().Token.asString(this.getAtt("AutoScalingIps",cdk().ResolutionTypeHint.STRING))}get attrEniId(){return cdk().Token.asString(this.getAtt("EniId",cdk().ResolutionTypeHint.STRING))}get attrNatGatewayId(){return cdk().Token.asString(this.getAtt("NatGatewayId",cdk().ResolutionTypeHint.STRING))}get attrRouteTableId(){return cdk().Token.asString(this.getAtt("RouteTableId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{allocationId:this._allocationId,availabilityMode:this._availabilityMode,availabilityZoneAddresses:this._availabilityZoneAddresses,connectivityType:this._connectivityType,maxDrainDurationSeconds:this._maxDrainDurationSeconds,privateIpAddress:this._privateIpAddress,secondaryAllocationIds:this._secondaryAllocationIds,secondaryPrivateIpAddressCount:this._secondaryPrivateIpAddressCount,secondaryPrivateIpAddresses:this._secondaryPrivateIpAddresses,subnetId:this._subnetId,tags:this.tags.renderTags(),vpcId:this._vpcId}}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",CfnNatGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnNatGatewayPropsToCloudFormation(props)}}exports.CfnNatGateway=CfnNatGateway;function CfnNatGatewayAvailabilityZoneAddressPropertyValidator(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("allocationIds",cdk().requiredValidator)(properties.allocationIds)),errors.collect(cdk().propertyValidator("allocationIds",cdk().listValidator(cdk().validateString))(properties.allocationIds)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("availabilityZoneId",cdk().validateString)(properties.availabilityZoneId)),errors.wrap('supplied properties not correct for "AvailabilityZoneAddressProperty"')}function convertCfnNatGatewayAvailabilityZoneAddressPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNatGatewayAvailabilityZoneAddressPropertyValidator(properties).assertSuccess(),{AllocationIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.allocationIds),AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk().stringToCloudFormation(properties.availabilityZoneId)}):properties}function CfnNatGatewayAvailabilityZoneAddressPropertyFromCloudFormation(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("allocationIds","AllocationIds",properties.AllocationIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AllocationIds):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNatGatewayPropsValidator(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("allocationId",cdk().validateString)(properties.allocationId)),errors.collect(cdk().propertyValidator("availabilityMode",cdk().validateString)(properties.availabilityMode)),errors.collect(cdk().propertyValidator("availabilityZoneAddresses",cdk().listValidator(CfnNatGatewayAvailabilityZoneAddressPropertyValidator))(properties.availabilityZoneAddresses)),errors.collect(cdk().propertyValidator("connectivityType",cdk().validateString)(properties.connectivityType)),errors.collect(cdk().propertyValidator("maxDrainDurationSeconds",cdk().validateNumber)(properties.maxDrainDurationSeconds)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.collect(cdk().propertyValidator("secondaryAllocationIds",cdk().listValidator(cdk().validateString))(properties.secondaryAllocationIds)),errors.collect(cdk().propertyValidator("secondaryPrivateIpAddressCount",cdk().validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk().propertyValidator("secondaryPrivateIpAddresses",cdk().listValidator(cdk().validateString))(properties.secondaryPrivateIpAddresses)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnNatGatewayProps"')}function convertCfnNatGatewayPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNatGatewayPropsValidator(properties).assertSuccess(),{AllocationId:cdk().stringToCloudFormation(properties.allocationId),AvailabilityMode:cdk().stringToCloudFormation(properties.availabilityMode),AvailabilityZoneAddresses:cdk().listMapper(convertCfnNatGatewayAvailabilityZoneAddressPropertyToCloudFormation)(properties.availabilityZoneAddresses),ConnectivityType:cdk().stringToCloudFormation(properties.connectivityType),MaxDrainDurationSeconds:cdk().numberToCloudFormation(properties.maxDrainDurationSeconds),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress),SecondaryAllocationIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.secondaryAllocationIds),SecondaryPrivateIpAddressCount:cdk().numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SecondaryPrivateIpAddresses:cdk().listMapper(cdk().stringToCloudFormation)(properties.secondaryPrivateIpAddresses),SubnetId:cdk().stringToCloudFormation(properties.subnetId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnNatGatewayPropsFromCloudFormation(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("allocationId","AllocationId",properties.AllocationId!=null?cfn_parse().FromCloudFormation.getString(properties.AllocationId):void 0),ret.addPropertyResult("availabilityMode","AvailabilityMode",properties.AvailabilityMode!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityMode):void 0),ret.addPropertyResult("availabilityZoneAddresses","AvailabilityZoneAddresses",properties.AvailabilityZoneAddresses!=null?cfn_parse().FromCloudFormation.getArray(CfnNatGatewayAvailabilityZoneAddressPropertyFromCloudFormation)(properties.AvailabilityZoneAddresses):void 0),ret.addPropertyResult("connectivityType","ConnectivityType",properties.ConnectivityType!=null?cfn_parse().FromCloudFormation.getString(properties.ConnectivityType):void 0),ret.addPropertyResult("maxDrainDurationSeconds","MaxDrainDurationSeconds",properties.MaxDrainDurationSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxDrainDurationSeconds):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("secondaryAllocationIds","SecondaryAllocationIds",properties.SecondaryAllocationIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecondaryAllocationIds):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("secondaryPrivateIpAddresses","SecondaryPrivateIpAddresses",properties.SecondaryPrivateIpAddresses!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecondaryPrivateIpAddresses):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkAcl extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkAcl",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkAcl";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkAclPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnNetworkAcl(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 isCfnNetworkAcl(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnNetworkAcl.CFN_RESOURCE_TYPE_NAME}tags;_tagsRaw;_vpcId;cfnPropertyNames={tags:"Tags",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnNetworkAcl.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnNetworkAclProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkAcl),error}cdk().requireProperty(props,"vpcId",this),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::NetworkAcl",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get networkAclRef(){return{networkAclId:this.ref}}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.tags.renderTags(),vpcId:this._vpcId}}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",CfnNetworkAcl.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnNetworkAclPropsToCloudFormation(props)}}exports.CfnNetworkAcl=CfnNetworkAcl;function CfnNetworkAclPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnNetworkAclProps"')}function convertCfnNetworkAclPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkAclPropsValidator(properties).assertSuccess(),{Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnNetworkAclPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkAclEntry extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkAclEntry",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkAclEntry";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkAclEntryPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnNetworkAclEntry(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 isCfnNetworkAclEntry(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnNetworkAclEntry.CFN_RESOURCE_TYPE_NAME}_cidrBlock;_egress;_icmp;_ipv6CidrBlock;_networkAclId;_portRange;_protocol;_ruleAction;_ruleNumber;cfnPropertyNames={cidrBlock:"CidrBlock",egress:"Egress",icmp:"Icmp",ipv6CidrBlock:"Ipv6CidrBlock",networkAclId:"NetworkAclId",portRange:"PortRange",protocol:"Protocol",ruleAction:"RuleAction",ruleNumber:"RuleNumber"};constructor(scope,id,props){super(scope,id,{type:CfnNetworkAclEntry.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnNetworkAclEntryProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkAclEntry),error}cdk().requireProperty(props,"networkAclId",this),cdk().requireProperty(props,"protocol",this),cdk().requireProperty(props,"ruleAction",this),cdk().requireProperty(props,"ruleNumber",this),this._cidrBlock=props.cidrBlock,this._egress=props.egress,this._icmp=props.icmp,this._ipv6CidrBlock=props.ipv6CidrBlock,this._networkAclId=props.networkAclId,this._portRange=props.portRange,this._protocol=props.protocol,this._ruleAction=props.ruleAction,this._ruleNumber=props.ruleNumber}get networkAclEntryRef(){return{networkAclEntryId:this.ref}}get cidrBlock(){return this._cidrBlock}set cidrBlock(value){cdk().traceProperty(this.node,"CidrBlock"),this._cidrBlock=value}get egress(){return this._egress}set egress(value){cdk().traceProperty(this.node,"Egress"),this._egress=value}get icmp(){return this._icmp}set icmp(value){cdk().traceProperty(this.node,"Icmp"),this._icmp=value}get ipv6CidrBlock(){return this._ipv6CidrBlock}set ipv6CidrBlock(value){cdk().traceProperty(this.node,"Ipv6CidrBlock"),this._ipv6CidrBlock=value}get networkAclId(){return this._networkAclId}set networkAclId(value){cdk().traceProperty(this.node,"NetworkAclId"),this._networkAclId=value}get portRange(){return this._portRange}set portRange(value){cdk().traceProperty(this.node,"PortRange"),this._portRange=value}get protocol(){return this._protocol}set protocol(value){cdk().traceProperty(this.node,"Protocol"),this._protocol=value}get ruleAction(){return this._ruleAction}set ruleAction(value){cdk().traceProperty(this.node,"RuleAction"),this._ruleAction=value}get ruleNumber(){return this._ruleNumber}set ruleNumber(value){cdk().traceProperty(this.node,"RuleNumber"),this._ruleNumber=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{cidrBlock:this._cidrBlock,egress:this._egress,icmp:this._icmp,ipv6CidrBlock:this._ipv6CidrBlock,networkAclId:this._networkAclId,portRange:this._portRange,protocol:this._protocol,ruleAction:this._ruleAction,ruleNumber:this._ruleNumber}}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",CfnNetworkAclEntry.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnNetworkAclEntryPropsToCloudFormation(props)}}exports.CfnNetworkAclEntry=CfnNetworkAclEntry;function CfnNetworkAclEntryIcmpPropertyValidator(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("type",cdk().validateNumber)(properties.type)),errors.wrap('supplied properties not correct for "IcmpProperty"')}function convertCfnNetworkAclEntryIcmpPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkAclEntryIcmpPropertyValidator(properties).assertSuccess(),{Code:cdk().numberToCloudFormation(properties.code),Type:cdk().numberToCloudFormation(properties.type)}):properties}function CfnNetworkAclEntryIcmpPropertyFromCloudFormation(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("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getNumber(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkAclEntryPortRangePropertyValidator(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("from",cdk().validateNumber)(properties.from)),errors.collect(cdk().propertyValidator("to",cdk().validateNumber)(properties.to)),errors.wrap('supplied properties not correct for "PortRangeProperty"')}function convertCfnNetworkAclEntryPortRangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkAclEntryPortRangePropertyValidator(properties).assertSuccess(),{From:cdk().numberToCloudFormation(properties.from),To:cdk().numberToCloudFormation(properties.to)}):properties}function CfnNetworkAclEntryPortRangePropertyFromCloudFormation(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("from","From",properties.From!=null?cfn_parse().FromCloudFormation.getNumber(properties.From):void 0),ret.addPropertyResult("to","To",properties.To!=null?cfn_parse().FromCloudFormation.getNumber(properties.To):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkAclEntryPropsValidator(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("cidrBlock",cdk().validateString)(properties.cidrBlock)),errors.collect(cdk().propertyValidator("egress",cdk().validateBoolean)(properties.egress)),errors.collect(cdk().propertyValidator("icmp",CfnNetworkAclEntryIcmpPropertyValidator)(properties.icmp)),errors.collect(cdk().propertyValidator("ipv6CidrBlock",cdk().validateString)(properties.ipv6CidrBlock)),errors.collect(cdk().propertyValidator("networkAclId",cdk().requiredValidator)(properties.networkAclId)),errors.collect(cdk().propertyValidator("networkAclId",cdk().validateString)(properties.networkAclId)),errors.collect(cdk().propertyValidator("portRange",CfnNetworkAclEntryPortRangePropertyValidator)(properties.portRange)),errors.collect(cdk().propertyValidator("protocol",cdk().requiredValidator)(properties.protocol)),errors.collect(cdk().propertyValidator("protocol",cdk().validateNumber)(properties.protocol)),errors.collect(cdk().propertyValidator("ruleAction",cdk().requiredValidator)(properties.ruleAction)),errors.collect(cdk().propertyValidator("ruleAction",cdk().validateString)(properties.ruleAction)),errors.collect(cdk().propertyValidator("ruleNumber",cdk().requiredValidator)(properties.ruleNumber)),errors.collect(cdk().propertyValidator("ruleNumber",cdk().validateNumber)(properties.ruleNumber)),errors.wrap('supplied properties not correct for "CfnNetworkAclEntryProps"')}function convertCfnNetworkAclEntryPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkAclEntryPropsValidator(properties).assertSuccess(),{CidrBlock:cdk().stringToCloudFormation(properties.cidrBlock),Egress:cdk().booleanToCloudFormation(properties.egress),Icmp:convertCfnNetworkAclEntryIcmpPropertyToCloudFormation(properties.icmp),Ipv6CidrBlock:cdk().stringToCloudFormation(properties.ipv6CidrBlock),NetworkAclId:cdk().stringToCloudFormation(properties.networkAclId),PortRange:convertCfnNetworkAclEntryPortRangePropertyToCloudFormation(properties.portRange),Protocol:cdk().numberToCloudFormation(properties.protocol),RuleAction:cdk().stringToCloudFormation(properties.ruleAction),RuleNumber:cdk().numberToCloudFormation(properties.ruleNumber)}):properties}function CfnNetworkAclEntryPropsFromCloudFormation(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("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("egress","Egress",properties.Egress!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Egress):void 0),ret.addPropertyResult("icmp","Icmp",properties.Icmp!=null?CfnNetworkAclEntryIcmpPropertyFromCloudFormation(properties.Icmp):void 0),ret.addPropertyResult("ipv6CidrBlock","Ipv6CidrBlock",properties.Ipv6CidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6CidrBlock):void 0),ret.addPropertyResult("networkAclId","NetworkAclId",properties.NetworkAclId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkAclId):void 0),ret.addPropertyResult("portRange","PortRange",properties.PortRange!=null?CfnNetworkAclEntryPortRangePropertyFromCloudFormation(properties.PortRange):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getNumber(properties.Protocol):void 0),ret.addPropertyResult("ruleAction","RuleAction",properties.RuleAction!=null?cfn_parse().FromCloudFormation.getString(properties.RuleAction):void 0),ret.addPropertyResult("ruleNumber","RuleNumber",properties.RuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.RuleNumber):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkInsightsAccessScope extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsAccessScope",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsAccessScope";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsAccessScopePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnNetworkInsightsAccessScope(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 isCfnNetworkInsightsAccessScope(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnNetworkInsightsAccessScope.CFN_RESOURCE_TYPE_NAME}static fromNetworkInsightsAccessScopeArn(scope,id,arn){class Import extends cdk().Resource{networkInsightsAccessScopeRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:network-insights-access-scope/${NetworkInsightsAccessScopeId}").parse(arn2);this.networkInsightsAccessScopeRef={networkInsightsAccessScopeId:variables.NetworkInsightsAccessScopeId,networkInsightsAccessScopeArn:arn2}}}return new Import(scope,id,arn)}static fromNetworkInsightsAccessScopeId(scope,id,networkInsightsAccessScopeId){class Import extends cdk().Resource{networkInsightsAccessScopeRef;constructor(scope2,id2,networkInsightsAccessScopeId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:network-insights-access-scope/${NetworkInsightsAccessScopeId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,NetworkInsightsAccessScopeId:networkInsightsAccessScopeId2});super(scope2,id2,{environmentFromArn:arn}),this.networkInsightsAccessScopeRef={networkInsightsAccessScopeId:networkInsightsAccessScopeId2,networkInsightsAccessScopeArn:arn}}}return new Import(scope,id,networkInsightsAccessScopeId)}static arnForNetworkInsightsAccessScope(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_INetworkInsightsAccessScopeRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForNetworkInsightsAccessScope),error}return resource.networkInsightsAccessScopeRef.networkInsightsAccessScopeArn}_excludePaths;_matchPaths;tags;_tagsRaw;cfnPropertyNames={excludePaths:"ExcludePaths",matchPaths:"MatchPaths",tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnNetworkInsightsAccessScope.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnNetworkInsightsAccessScopeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsAccessScope),error}this._excludePaths=props.excludePaths,this._matchPaths=props.matchPaths,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::NetworkInsightsAccessScope",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get networkInsightsAccessScopeRef(){return{networkInsightsAccessScopeId:this.ref,networkInsightsAccessScopeArn:this.attrNetworkInsightsAccessScopeArn}}get excludePaths(){return this._excludePaths}set excludePaths(value){cdk().traceProperty(this.node,"ExcludePaths"),this._excludePaths=value}get matchPaths(){return this._matchPaths}set matchPaths(value){cdk().traceProperty(this.node,"MatchPaths"),this._matchPaths=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrCreatedDate(){return cdk().Token.asString(this.getAtt("CreatedDate",cdk().ResolutionTypeHint.STRING))}get attrNetworkInsightsAccessScopeArn(){return cdk().Token.asString(this.getAtt("NetworkInsightsAccessScopeArn",cdk().ResolutionTypeHint.STRING))}get attrNetworkInsightsAccessScopeId(){return cdk().Token.asString(this.getAtt("NetworkInsightsAccessScopeId",cdk().ResolutionTypeHint.STRING))}get attrUpdatedDate(){return cdk().Token.asString(this.getAtt("UpdatedDate",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{excludePaths:this._excludePaths,matchPaths:this._matchPaths,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",CfnNetworkInsightsAccessScope.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnNetworkInsightsAccessScopePropsToCloudFormation(props)}}exports.CfnNetworkInsightsAccessScope=CfnNetworkInsightsAccessScope;function CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyValidator(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("resourceTypes",cdk().listValidator(cdk().validateString))(properties.resourceTypes)),errors.collect(cdk().propertyValidator("resources",cdk().listValidator(cdk().validateString))(properties.resources)),errors.wrap('supplied properties not correct for "ResourceStatementRequestProperty"')}function convertCfnNetworkInsightsAccessScopeResourceStatementRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyValidator(properties).assertSuccess(),{ResourceTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.resourceTypes),Resources:cdk().listMapper(cdk().stringToCloudFormation)(properties.resources)}):properties}function CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyFromCloudFormation(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("resources","Resources",properties.Resources!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Resources):void 0),ret.addPropertyResult("resourceTypes","ResourceTypes",properties.ResourceTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ResourceTypes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyValidator(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("destinationAddresses",cdk().listValidator(cdk().validateString))(properties.destinationAddresses)),errors.collect(cdk().propertyValidator("destinationPorts",cdk().listValidator(cdk().validateString))(properties.destinationPorts)),errors.collect(cdk().propertyValidator("destinationPrefixLists",cdk().listValidator(cdk().validateString))(properties.destinationPrefixLists)),errors.collect(cdk().propertyValidator("protocols",cdk().listValidator(cdk().validateString))(properties.protocols)),errors.collect(cdk().propertyValidator("sourceAddresses",cdk().listValidator(cdk().validateString))(properties.sourceAddresses)),errors.collect(cdk().propertyValidator("sourcePorts",cdk().listValidator(cdk().validateString))(properties.sourcePorts)),errors.collect(cdk().propertyValidator("sourcePrefixLists",cdk().listValidator(cdk().validateString))(properties.sourcePrefixLists)),errors.wrap('supplied properties not correct for "PacketHeaderStatementRequestProperty"')}function convertCfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyValidator(properties).assertSuccess(),{DestinationAddresses:cdk().listMapper(cdk().stringToCloudFormation)(properties.destinationAddresses),DestinationPorts:cdk().listMapper(cdk().stringToCloudFormation)(properties.destinationPorts),DestinationPrefixLists:cdk().listMapper(cdk().stringToCloudFormation)(properties.destinationPrefixLists),Protocols:cdk().listMapper(cdk().stringToCloudFormation)(properties.protocols),SourceAddresses:cdk().listMapper(cdk().stringToCloudFormation)(properties.sourceAddresses),SourcePorts:cdk().listMapper(cdk().stringToCloudFormation)(properties.sourcePorts),SourcePrefixLists:cdk().listMapper(cdk().stringToCloudFormation)(properties.sourcePrefixLists)}):properties}function CfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyFromCloudFormation(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("destinationAddresses","DestinationAddresses",properties.DestinationAddresses!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DestinationAddresses):void 0),ret.addPropertyResult("destinationPorts","DestinationPorts",properties.DestinationPorts!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DestinationPorts):void 0),ret.addPropertyResult("destinationPrefixLists","DestinationPrefixLists",properties.DestinationPrefixLists!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DestinationPrefixLists):void 0),ret.addPropertyResult("protocols","Protocols",properties.Protocols!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Protocols):void 0),ret.addPropertyResult("sourceAddresses","SourceAddresses",properties.SourceAddresses!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SourceAddresses):void 0),ret.addPropertyResult("sourcePorts","SourcePorts",properties.SourcePorts!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SourcePorts):void 0),ret.addPropertyResult("sourcePrefixLists","SourcePrefixLists",properties.SourcePrefixLists!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SourcePrefixLists):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScopePathStatementRequestPropertyValidator(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("packetHeaderStatement",CfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyValidator)(properties.packetHeaderStatement)),errors.collect(cdk().propertyValidator("resourceStatement",CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyValidator)(properties.resourceStatement)),errors.wrap('supplied properties not correct for "PathStatementRequestProperty"')}function convertCfnNetworkInsightsAccessScopePathStatementRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAccessScopePathStatementRequestPropertyValidator(properties).assertSuccess(),{PacketHeaderStatement:convertCfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyToCloudFormation(properties.packetHeaderStatement),ResourceStatement:convertCfnNetworkInsightsAccessScopeResourceStatementRequestPropertyToCloudFormation(properties.resourceStatement)}):properties}function CfnNetworkInsightsAccessScopePathStatementRequestPropertyFromCloudFormation(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("packetHeaderStatement","PacketHeaderStatement",properties.PacketHeaderStatement!=null?CfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyFromCloudFormation(properties.PacketHeaderStatement):void 0),ret.addPropertyResult("resourceStatement","ResourceStatement",properties.ResourceStatement!=null?CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyFromCloudFormation(properties.ResourceStatement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyValidator(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("resourceStatement",CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyValidator)(properties.resourceStatement)),errors.wrap('supplied properties not correct for "ThroughResourcesStatementRequestProperty"')}function convertCfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyValidator(properties).assertSuccess(),{ResourceStatement:convertCfnNetworkInsightsAccessScopeResourceStatementRequestPropertyToCloudFormation(properties.resourceStatement)}):properties}function CfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyFromCloudFormation(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("resourceStatement","ResourceStatement",properties.ResourceStatement!=null?CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyFromCloudFormation(properties.ResourceStatement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyValidator(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("destination",CfnNetworkInsightsAccessScopePathStatementRequestPropertyValidator)(properties.destination)),errors.collect(cdk().propertyValidator("source",CfnNetworkInsightsAccessScopePathStatementRequestPropertyValidator)(properties.source)),errors.collect(cdk().propertyValidator("throughResources",cdk().listValidator(CfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyValidator))(properties.throughResources)),errors.wrap('supplied properties not correct for "AccessScopePathRequestProperty"')}function convertCfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyValidator(properties).assertSuccess(),{Destination:convertCfnNetworkInsightsAccessScopePathStatementRequestPropertyToCloudFormation(properties.destination),Source:convertCfnNetworkInsightsAccessScopePathStatementRequestPropertyToCloudFormation(properties.source),ThroughResources:cdk().listMapper(convertCfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyToCloudFormation)(properties.throughResources)}):properties}function CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyFromCloudFormation(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("destination","Destination",properties.Destination!=null?CfnNetworkInsightsAccessScopePathStatementRequestPropertyFromCloudFormation(properties.Destination):void 0),ret.addPropertyResult("source","Source",properties.Source!=null?CfnNetworkInsightsAccessScopePathStatementRequestPropertyFromCloudFormation(properties.Source):void 0),ret.addPropertyResult("throughResources","ThroughResources",properties.ThroughResources!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyFromCloudFormation)(properties.ThroughResources):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScopePropsValidator(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("excludePaths",cdk().listValidator(CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyValidator))(properties.excludePaths)),errors.collect(cdk().propertyValidator("matchPaths",cdk().listValidator(CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyValidator))(properties.matchPaths)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsAccessScopeProps"')}function convertCfnNetworkInsightsAccessScopePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAccessScopePropsValidator(properties).assertSuccess(),{ExcludePaths:cdk().listMapper(convertCfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyToCloudFormation)(properties.excludePaths),MatchPaths:cdk().listMapper(convertCfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyToCloudFormation)(properties.matchPaths),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsAccessScopePropsFromCloudFormation(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("excludePaths","ExcludePaths",properties.ExcludePaths!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyFromCloudFormation)(properties.ExcludePaths):void 0),ret.addPropertyResult("matchPaths","MatchPaths",properties.MatchPaths!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyFromCloudFormation)(properties.MatchPaths):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 CfnNetworkInsightsAccessScopeAnalysis extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsAccessScopeAnalysis",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsAccessScopeAnalysis";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsAccessScopeAnalysisPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnNetworkInsightsAccessScopeAnalysis(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 isCfnNetworkInsightsAccessScopeAnalysis(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnNetworkInsightsAccessScopeAnalysis.CFN_RESOURCE_TYPE_NAME}static fromNetworkInsightsAccessScopeAnalysisArn(scope,id,arn){class Import extends cdk().Resource{networkInsightsAccessScopeAnalysisRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:network-insights-access-scope-analysis/${NetworkInsightsAccessScopeAnalysisId}").parse(arn2);this.networkInsightsAccessScopeAnalysisRef={networkInsightsAccessScopeAnalysisId:variables.NetworkInsightsAccessScopeAnalysisId,networkInsightsAccessScopeAnalysisArn:arn2}}}return new Import(scope,id,arn)}static fromNetworkInsightsAccessScopeAnalysisId(scope,id,networkInsightsAccessScopeAnalysisId){class Import extends cdk().Resource{networkInsightsAccessScopeAnalysisRef;constructor(scope2,id2,networkInsightsAccessScopeAnalysisId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:network-insights-access-scope-analysis/${NetworkInsightsAccessScopeAnalysisId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,NetworkInsightsAccessScopeAnalysisId:networkInsightsAccessScopeAnalysisId2});super(scope2,id2,{environmentFromArn:arn}),this.networkInsightsAccessScopeAnalysisRef={networkInsightsAccessScopeAnalysisId:networkInsightsAccessScopeAnalysisId2,networkInsightsAccessScopeAnalysisArn:arn}}}return new Import(scope,id,networkInsightsAccessScopeAnalysisId)}static arnForNetworkInsightsAccessScopeAnalysis(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_INetworkInsightsAccessScopeAnalysisRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForNetworkInsightsAccessScopeAnalysis),error}return resource.networkInsightsAccessScopeAnalysisRef.networkInsightsAccessScopeAnalysisArn}_networkInsightsAccessScopeId;tags;_tagsRaw;cfnPropertyNames={networkInsightsAccessScopeId:"NetworkInsightsAccessScopeId",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnNetworkInsightsAccessScopeAnalysis.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnNetworkInsightsAccessScopeAnalysisProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsAccessScopeAnalysis),error}cdk().requireProperty(props,"networkInsightsAccessScopeId",this),this._networkInsightsAccessScopeId=props.networkInsightsAccessScopeId,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::NetworkInsightsAccessScopeAnalysis",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get networkInsightsAccessScopeAnalysisRef(){return{networkInsightsAccessScopeAnalysisId:this.ref,networkInsightsAccessScopeAnalysisArn:this.attrNetworkInsightsAccessScopeAnalysisArn}}get networkInsightsAccessScopeId(){return this._networkInsightsAccessScopeId}set networkInsightsAccessScopeId(value){cdk().traceProperty(this.node,"NetworkInsightsAccessScopeId"),this._networkInsightsAccessScopeId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrAnalyzedEniCount(){return cdk().Token.asNumber(this.getAtt("AnalyzedEniCount",cdk().ResolutionTypeHint.NUMBER))}get attrEndDate(){return cdk().Token.asString(this.getAtt("EndDate",cdk().ResolutionTypeHint.STRING))}get attrFindingsFound(){return cdk().Token.asString(this.getAtt("FindingsFound",cdk().ResolutionTypeHint.STRING))}get attrNetworkInsightsAccessScopeAnalysisArn(){return cdk().Token.asString(this.getAtt("NetworkInsightsAccessScopeAnalysisArn",cdk().ResolutionTypeHint.STRING))}get attrNetworkInsightsAccessScopeAnalysisId(){return cdk().Token.asString(this.getAtt("NetworkInsightsAccessScopeAnalysisId",cdk().ResolutionTypeHint.STRING))}get attrStartDate(){return cdk().Token.asString(this.getAtt("StartDate",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get attrStatusMessage(){return cdk().Token.asString(this.getAtt("StatusMessage",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{networkInsightsAccessScopeId:this._networkInsightsAccessScopeId,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",CfnNetworkInsightsAccessScopeAnalysis.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnNetworkInsightsAccessScopeAnalysisPropsToCloudFormation(props)}}exports.CfnNetworkInsightsAccessScopeAnalysis=CfnNetworkInsightsAccessScopeAnalysis;function CfnNetworkInsightsAccessScopeAnalysisPropsValidator(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("networkInsightsAccessScopeId",cdk().requiredValidator)(properties.networkInsightsAccessScopeId)),errors.collect(cdk().propertyValidator("networkInsightsAccessScopeId",cdk().validateString)(properties.networkInsightsAccessScopeId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsAccessScopeAnalysisProps"')}function convertCfnNetworkInsightsAccessScopeAnalysisPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAccessScopeAnalysisPropsValidator(properties).assertSuccess(),{NetworkInsightsAccessScopeId:cdk().stringToCloudFormation(properties.networkInsightsAccessScopeId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsAccessScopeAnalysisPropsFromCloudFormation(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("networkInsightsAccessScopeId","NetworkInsightsAccessScopeId",properties.NetworkInsightsAccessScopeId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInsightsAccessScopeId):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 CfnNetworkInsightsAnalysis extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsAnalysis",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsAnalysis";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsAnalysisPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnNetworkInsightsAnalysis(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 isCfnNetworkInsightsAnalysis(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnNetworkInsightsAnalysis.CFN_RESOURCE_TYPE_NAME}static fromNetworkInsightsAnalysisArn(scope,id,arn){class Import extends cdk().Resource{networkInsightsAnalysisRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:network-insights-analysis/${NetworkInsightsAnalysisId}").parse(arn2);this.networkInsightsAnalysisRef={networkInsightsAnalysisId:variables.NetworkInsightsAnalysisId,networkInsightsAnalysisArn:arn2}}}return new Import(scope,id,arn)}static fromNetworkInsightsAnalysisId(scope,id,networkInsightsAnalysisId){class Import extends cdk().Resource{networkInsightsAnalysisRef;constructor(scope2,id2,networkInsightsAnalysisId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:network-insights-analysis/${NetworkInsightsAnalysisId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,NetworkInsightsAnalysisId:networkInsightsAnalysisId2});super(scope2,id2,{environmentFromArn:arn}),this.networkInsightsAnalysisRef={networkInsightsAnalysisId:networkInsightsAnalysisId2,networkInsightsAnalysisArn:arn}}}return new Import(scope,id,networkInsightsAnalysisId)}static arnForNetworkInsightsAnalysis(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_INetworkInsightsAnalysisRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForNetworkInsightsAnalysis),error}return resource.networkInsightsAnalysisRef.networkInsightsAnalysisArn}_additionalAccounts;_filterInArns;_filterOutArns;_networkInsightsPathId;tags;_tagsRaw;cfnPropertyNames={additionalAccounts:"AdditionalAccounts",filterInArns:"FilterInArns",filterOutArns:"FilterOutArns",networkInsightsPathId:"NetworkInsightsPathId",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnNetworkInsightsAnalysis.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnNetworkInsightsAnalysisProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsAnalysis),error}cdk().requireProperty(props,"networkInsightsPathId",this),this._additionalAccounts=props.additionalAccounts,this._filterInArns=props.filterInArns,this._filterOutArns=props.filterOutArns,this._networkInsightsPathId=props.networkInsightsPathId,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::NetworkInsightsAnalysis",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get networkInsightsAnalysisRef(){return{networkInsightsAnalysisId:this.ref,networkInsightsAnalysisArn:this.attrNetworkInsightsAnalysisArn}}get additionalAccounts(){return this._additionalAccounts}set additionalAccounts(value){cdk().traceProperty(this.node,"AdditionalAccounts"),this._additionalAccounts=value}get filterInArns(){return this._filterInArns}set filterInArns(value){cdk().traceProperty(this.node,"FilterInArns"),this._filterInArns=value}get filterOutArns(){return this._filterOutArns}set filterOutArns(value){cdk().traceProperty(this.node,"FilterOutArns"),this._filterOutArns=value}get networkInsightsPathId(){return this._networkInsightsPathId}set networkInsightsPathId(value){cdk().traceProperty(this.node,"NetworkInsightsPathId"),this._networkInsightsPathId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrAlternatePathHints(){return this.getAtt("AlternatePathHints")}get attrExplanations(){return this.getAtt("Explanations")}get attrForwardPathComponents(){return this.getAtt("ForwardPathComponents")}get attrNetworkInsightsAnalysisArn(){return cdk().Token.asString(this.getAtt("NetworkInsightsAnalysisArn",cdk().ResolutionTypeHint.STRING))}get attrNetworkInsightsAnalysisId(){return cdk().Token.asString(this.getAtt("NetworkInsightsAnalysisId",cdk().ResolutionTypeHint.STRING))}get attrNetworkPathFound(){return this.getAtt("NetworkPathFound")}get attrReturnPathComponents(){return this.getAtt("ReturnPathComponents")}get attrStartDate(){return cdk().Token.asString(this.getAtt("StartDate",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get attrStatusMessage(){return cdk().Token.asString(this.getAtt("StatusMessage",cdk().ResolutionTypeHint.STRING))}get attrSuggestedAccounts(){return cdk().Token.asList(this.getAtt("SuggestedAccounts",cdk().ResolutionTypeHint.STRING_LIST))}get cfnProperties(){return{additionalAccounts:this._additionalAccounts,filterInArns:this._filterInArns,filterOutArns:this._filterOutArns,networkInsightsPathId:this._networkInsightsPathId,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",CfnNetworkInsightsAnalysis.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnNetworkInsightsAnalysisPropsToCloudFormation(props)}}exports.CfnNetworkInsightsAnalysis=CfnNetworkInsightsAnalysis;function CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.collect(cdk().propertyValidator("id",cdk().validateString)(properties.id)),errors.wrap('supplied properties not correct for "AnalysisComponentProperty"')}function convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn),Id:cdk().stringToCloudFormation(properties.id)}):properties}function CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("id","Id",properties.Id!=null?cfn_parse().FromCloudFormation.getString(properties.Id):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisAdditionalDetailPropertyValidator(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("additionalDetailType",cdk().validateString)(properties.additionalDetailType)),errors.collect(cdk().propertyValidator("component",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.component)),errors.collect(cdk().propertyValidator("loadBalancers",cdk().listValidator(CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator))(properties.loadBalancers)),errors.collect(cdk().propertyValidator("serviceName",cdk().validateString)(properties.serviceName)),errors.wrap('supplied properties not correct for "AdditionalDetailProperty"')}function convertCfnNetworkInsightsAnalysisAdditionalDetailPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisAdditionalDetailPropertyValidator(properties).assertSuccess(),{AdditionalDetailType:cdk().stringToCloudFormation(properties.additionalDetailType),Component:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.component),LoadBalancers:cdk().listMapper(convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation)(properties.loadBalancers),ServiceName:cdk().stringToCloudFormation(properties.serviceName)}):properties}function CfnNetworkInsightsAnalysisAdditionalDetailPropertyFromCloudFormation(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("additionalDetailType","AdditionalDetailType",properties.AdditionalDetailType!=null?cfn_parse().FromCloudFormation.getString(properties.AdditionalDetailType):void 0),ret.addPropertyResult("component","Component",properties.Component!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Component):void 0),ret.addPropertyResult("loadBalancers","LoadBalancers",properties.LoadBalancers!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation)(properties.LoadBalancers):void 0),ret.addPropertyResult("serviceName","ServiceName",properties.ServiceName!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisPortRangePropertyValidator(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("from",cdk().validateNumber)(properties.from)),errors.collect(cdk().propertyValidator("to",cdk().validateNumber)(properties.to)),errors.wrap('supplied properties not correct for "PortRangeProperty"')}function convertCfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisPortRangePropertyValidator(properties).assertSuccess(),{From:cdk().numberToCloudFormation(properties.from),To:cdk().numberToCloudFormation(properties.to)}):properties}function CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation(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("from","From",properties.From!=null?cfn_parse().FromCloudFormation.getNumber(properties.From):void 0),ret.addPropertyResult("to","To",properties.To!=null?cfn_parse().FromCloudFormation.getNumber(properties.To):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyValidator(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("destinationAddresses",cdk().listValidator(cdk().validateString))(properties.destinationAddresses)),errors.collect(cdk().propertyValidator("destinationPortRanges",cdk().listValidator(CfnNetworkInsightsAnalysisPortRangePropertyValidator))(properties.destinationPortRanges)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("sourceAddresses",cdk().listValidator(cdk().validateString))(properties.sourceAddresses)),errors.collect(cdk().propertyValidator("sourcePortRanges",cdk().listValidator(CfnNetworkInsightsAnalysisPortRangePropertyValidator))(properties.sourcePortRanges)),errors.wrap('supplied properties not correct for "AnalysisPacketHeaderProperty"')}function convertCfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyValidator(properties).assertSuccess(),{DestinationAddresses:cdk().listMapper(cdk().stringToCloudFormation)(properties.destinationAddresses),DestinationPortRanges:cdk().listMapper(convertCfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation)(properties.destinationPortRanges),Protocol:cdk().stringToCloudFormation(properties.protocol),SourceAddresses:cdk().listMapper(cdk().stringToCloudFormation)(properties.sourceAddresses),SourcePortRanges:cdk().listMapper(convertCfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation)(properties.sourcePortRanges)}):properties}function CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyFromCloudFormation(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("destinationAddresses","DestinationAddresses",properties.DestinationAddresses!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.DestinationAddresses):void 0),ret.addPropertyResult("destinationPortRanges","DestinationPortRanges",properties.DestinationPortRanges!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation)(properties.DestinationPortRanges):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("sourceAddresses","SourceAddresses",properties.SourceAddresses!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SourceAddresses):void 0),ret.addPropertyResult("sourcePortRanges","SourcePortRanges",properties.SourcePortRanges!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation)(properties.SourcePortRanges):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidr",cdk().validateString)(properties.cidr)),errors.collect(cdk().propertyValidator("direction",cdk().validateString)(properties.direction)),errors.collect(cdk().propertyValidator("portRange",CfnNetworkInsightsAnalysisPortRangePropertyValidator)(properties.portRange)),errors.collect(cdk().propertyValidator("prefixListId",cdk().validateString)(properties.prefixListId)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("securityGroupId",cdk().validateString)(properties.securityGroupId)),errors.wrap('supplied properties not correct for "AnalysisSecurityGroupRuleProperty"')}function convertCfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyValidator(properties).assertSuccess(),{Cidr:cdk().stringToCloudFormation(properties.cidr),Direction:cdk().stringToCloudFormation(properties.direction),PortRange:convertCfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation(properties.portRange),PrefixListId:cdk().stringToCloudFormation(properties.prefixListId),Protocol:cdk().stringToCloudFormation(properties.protocol),SecurityGroupId:cdk().stringToCloudFormation(properties.securityGroupId)}):properties}function CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("direction","Direction",properties.Direction!=null?cfn_parse().FromCloudFormation.getString(properties.Direction):void 0),ret.addPropertyResult("portRange","PortRange",properties.PortRange!=null?CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation(properties.PortRange):void 0),ret.addPropertyResult("prefixListId","PrefixListId",properties.PrefixListId!=null?cfn_parse().FromCloudFormation.getString(properties.PrefixListId):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("securityGroupId","SecurityGroupId",properties.SecurityGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.SecurityGroupId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyValidator(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("instancePort",cdk().validateNumber)(properties.instancePort)),errors.collect(cdk().propertyValidator("loadBalancerPort",cdk().validateNumber)(properties.loadBalancerPort)),errors.wrap('supplied properties not correct for "AnalysisLoadBalancerListenerProperty"')}function convertCfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyValidator(properties).assertSuccess(),{InstancePort:cdk().numberToCloudFormation(properties.instancePort),LoadBalancerPort:cdk().numberToCloudFormation(properties.loadBalancerPort)}):properties}function CfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyFromCloudFormation(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("instancePort","InstancePort",properties.InstancePort!=null?cfn_parse().FromCloudFormation.getNumber(properties.InstancePort):void 0),ret.addPropertyResult("loadBalancerPort","LoadBalancerPort",properties.LoadBalancerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.LoadBalancerPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyValidator(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("attachmentId",cdk().validateString)(properties.attachmentId)),errors.collect(cdk().propertyValidator("destinationCidr",cdk().validateString)(properties.destinationCidr)),errors.collect(cdk().propertyValidator("prefixListId",cdk().validateString)(properties.prefixListId)),errors.collect(cdk().propertyValidator("resourceId",cdk().validateString)(properties.resourceId)),errors.collect(cdk().propertyValidator("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("routeOrigin",cdk().validateString)(properties.routeOrigin)),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.wrap('supplied properties not correct for "TransitGatewayRouteTableRouteProperty"')}function convertCfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyValidator(properties).assertSuccess(),{AttachmentId:cdk().stringToCloudFormation(properties.attachmentId),DestinationCidr:cdk().stringToCloudFormation(properties.destinationCidr),PrefixListId:cdk().stringToCloudFormation(properties.prefixListId),ResourceId:cdk().stringToCloudFormation(properties.resourceId),ResourceType:cdk().stringToCloudFormation(properties.resourceType),RouteOrigin:cdk().stringToCloudFormation(properties.routeOrigin),State:cdk().stringToCloudFormation(properties.state)}):properties}function CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyFromCloudFormation(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("attachmentId","AttachmentId",properties.AttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.AttachmentId):void 0),ret.addPropertyResult("destinationCidr","DestinationCidr",properties.DestinationCidr!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationCidr):void 0),ret.addPropertyResult("prefixListId","PrefixListId",properties.PrefixListId!=null?cfn_parse().FromCloudFormation.getString(properties.PrefixListId):void 0),ret.addPropertyResult("resourceId","ResourceId",properties.ResourceId!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceId):void 0),ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):void 0),ret.addPropertyResult("routeOrigin","RouteOrigin",properties.RouteOrigin!=null?cfn_parse().FromCloudFormation.getString(properties.RouteOrigin):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyValidator(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("address",cdk().validateString)(properties.address)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("instance",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.instance)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.wrap('supplied properties not correct for "AnalysisLoadBalancerTargetProperty"')}function convertCfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyValidator(properties).assertSuccess(),{Address:cdk().stringToCloudFormation(properties.address),AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),Instance:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.instance),Port:cdk().numberToCloudFormation(properties.port)}):properties}function CfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyFromCloudFormation(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("address","Address",properties.Address!=null?cfn_parse().FromCloudFormation.getString(properties.Address):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("instance","Instance",properties.Instance!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Instance):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyValidator(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("natGatewayId",cdk().validateString)(properties.natGatewayId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("origin",cdk().validateString)(properties.origin)),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().validateString)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("vpcPeeringConnectionId",cdk().validateString)(properties.vpcPeeringConnectionId)),errors.collect(cdk().propertyValidator("destinationCidr",cdk().validateString)(properties.destinationCidr)),errors.collect(cdk().propertyValidator("destinationPrefixListId",cdk().validateString)(properties.destinationPrefixListId)),errors.collect(cdk().propertyValidator("egressOnlyInternetGatewayId",cdk().validateString)(properties.egressOnlyInternetGatewayId)),errors.collect(cdk().propertyValidator("gatewayId",cdk().validateString)(properties.gatewayId)),errors.collect(cdk().propertyValidator("instanceId",cdk().validateString)(properties.instanceId)),errors.wrap('supplied properties not correct for "AnalysisRouteTableRouteProperty"')}function convertCfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyValidator(properties).assertSuccess(),{NatGatewayId:cdk().stringToCloudFormation(properties.natGatewayId),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),Origin:cdk().stringToCloudFormation(properties.origin),State:cdk().stringToCloudFormation(properties.state),TransitGatewayId:cdk().stringToCloudFormation(properties.transitGatewayId),VpcPeeringConnectionId:cdk().stringToCloudFormation(properties.vpcPeeringConnectionId),destinationCidr:cdk().stringToCloudFormation(properties.destinationCidr),destinationPrefixListId:cdk().stringToCloudFormation(properties.destinationPrefixListId),egressOnlyInternetGatewayId:cdk().stringToCloudFormation(properties.egressOnlyInternetGatewayId),gatewayId:cdk().stringToCloudFormation(properties.gatewayId),instanceId:cdk().stringToCloudFormation(properties.instanceId)}):properties}function CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyFromCloudFormation(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("destinationCidr","destinationCidr",properties.destinationCidr!=null?cfn_parse().FromCloudFormation.getString(properties.destinationCidr):void 0),ret.addPropertyResult("destinationPrefixListId","destinationPrefixListId",properties.destinationPrefixListId!=null?cfn_parse().FromCloudFormation.getString(properties.destinationPrefixListId):void 0),ret.addPropertyResult("egressOnlyInternetGatewayId","egressOnlyInternetGatewayId",properties.egressOnlyInternetGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.egressOnlyInternetGatewayId):void 0),ret.addPropertyResult("gatewayId","gatewayId",properties.gatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.gatewayId):void 0),ret.addPropertyResult("instanceId","instanceId",properties.instanceId!=null?cfn_parse().FromCloudFormation.getString(properties.instanceId):void 0),ret.addPropertyResult("natGatewayId","NatGatewayId",properties.NatGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.NatGatewayId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("origin","Origin",properties.Origin!=null?cfn_parse().FromCloudFormation.getString(properties.Origin):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("vpcPeeringConnectionId","VpcPeeringConnectionId",properties.VpcPeeringConnectionId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcPeeringConnectionId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisAnalysisAclRulePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidr",cdk().validateString)(properties.cidr)),errors.collect(cdk().propertyValidator("egress",cdk().validateBoolean)(properties.egress)),errors.collect(cdk().propertyValidator("portRange",CfnNetworkInsightsAnalysisPortRangePropertyValidator)(properties.portRange)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("ruleAction",cdk().validateString)(properties.ruleAction)),errors.collect(cdk().propertyValidator("ruleNumber",cdk().validateNumber)(properties.ruleNumber)),errors.wrap('supplied properties not correct for "AnalysisAclRuleProperty"')}function convertCfnNetworkInsightsAnalysisAnalysisAclRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisAnalysisAclRulePropertyValidator(properties).assertSuccess(),{Cidr:cdk().stringToCloudFormation(properties.cidr),Egress:cdk().booleanToCloudFormation(properties.egress),PortRange:convertCfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation(properties.portRange),Protocol:cdk().stringToCloudFormation(properties.protocol),RuleAction:cdk().stringToCloudFormation(properties.ruleAction),RuleNumber:cdk().numberToCloudFormation(properties.ruleNumber)}):properties}function CfnNetworkInsightsAnalysisAnalysisAclRulePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("egress","Egress",properties.Egress!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Egress):void 0),ret.addPropertyResult("portRange","PortRange",properties.PortRange!=null?CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation(properties.PortRange):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("ruleAction","RuleAction",properties.RuleAction!=null?cfn_parse().FromCloudFormation.getString(properties.RuleAction):void 0),ret.addPropertyResult("ruleNumber","RuleNumber",properties.RuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.RuleNumber):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisExplanationPropertyValidator(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("acl",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.acl)),errors.collect(cdk().propertyValidator("aclRule",CfnNetworkInsightsAnalysisAnalysisAclRulePropertyValidator)(properties.aclRule)),errors.collect(cdk().propertyValidator("address",cdk().validateString)(properties.address)),errors.collect(cdk().propertyValidator("addresses",cdk().listValidator(cdk().validateString))(properties.addresses)),errors.collect(cdk().propertyValidator("attachedTo",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.attachedTo)),errors.collect(cdk().propertyValidator("availabilityZones",cdk().listValidator(cdk().validateString))(properties.availabilityZones)),errors.collect(cdk().propertyValidator("cidrs",cdk().listValidator(cdk().validateString))(properties.cidrs)),errors.collect(cdk().propertyValidator("classicLoadBalancerListener",CfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyValidator)(properties.classicLoadBalancerListener)),errors.collect(cdk().propertyValidator("component",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.component)),errors.collect(cdk().propertyValidator("componentAccount",cdk().validateString)(properties.componentAccount)),errors.collect(cdk().propertyValidator("componentRegion",cdk().validateString)(properties.componentRegion)),errors.collect(cdk().propertyValidator("customerGateway",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.customerGateway)),errors.collect(cdk().propertyValidator("destination",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.destination)),errors.collect(cdk().propertyValidator("destinationVpc",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.destinationVpc)),errors.collect(cdk().propertyValidator("direction",cdk().validateString)(properties.direction)),errors.collect(cdk().propertyValidator("elasticLoadBalancerListener",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.elasticLoadBalancerListener)),errors.collect(cdk().propertyValidator("explanationCode",cdk().validateString)(properties.explanationCode)),errors.collect(cdk().propertyValidator("ingressRouteTable",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.ingressRouteTable)),errors.collect(cdk().propertyValidator("internetGateway",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.internetGateway)),errors.collect(cdk().propertyValidator("loadBalancerArn",cdk().validateString)(properties.loadBalancerArn)),errors.collect(cdk().propertyValidator("loadBalancerListenerPort",cdk().validateNumber)(properties.loadBalancerListenerPort)),errors.collect(cdk().propertyValidator("loadBalancerTarget",CfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyValidator)(properties.loadBalancerTarget)),errors.collect(cdk().propertyValidator("loadBalancerTargetGroup",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.loadBalancerTargetGroup)),errors.collect(cdk().propertyValidator("loadBalancerTargetGroups",cdk().listValidator(CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator))(properties.loadBalancerTargetGroups)),errors.collect(cdk().propertyValidator("loadBalancerTargetPort",cdk().validateNumber)(properties.loadBalancerTargetPort)),errors.collect(cdk().propertyValidator("missingComponent",cdk().validateString)(properties.missingComponent)),errors.collect(cdk().propertyValidator("natGateway",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.natGateway)),errors.collect(cdk().propertyValidator("networkInterface",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.networkInterface)),errors.collect(cdk().propertyValidator("packetField",cdk().validateString)(properties.packetField)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("portRanges",cdk().listValidator(CfnNetworkInsightsAnalysisPortRangePropertyValidator))(properties.portRanges)),errors.collect(cdk().propertyValidator("prefixList",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.prefixList)),errors.collect(cdk().propertyValidator("protocols",cdk().listValidator(cdk().validateString))(properties.protocols)),errors.collect(cdk().propertyValidator("routeTable",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.routeTable)),errors.collect(cdk().propertyValidator("routeTableRoute",CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyValidator)(properties.routeTableRoute)),errors.collect(cdk().propertyValidator("securityGroup",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.securityGroup)),errors.collect(cdk().propertyValidator("securityGroupRule",CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyValidator)(properties.securityGroupRule)),errors.collect(cdk().propertyValidator("securityGroups",cdk().listValidator(CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator))(properties.securityGroups)),errors.collect(cdk().propertyValidator("sourceVpc",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.sourceVpc)),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.collect(cdk().propertyValidator("subnet",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.subnet)),errors.collect(cdk().propertyValidator("subnetRouteTable",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.subnetRouteTable)),errors.collect(cdk().propertyValidator("transitGateway",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.transitGateway)),errors.collect(cdk().propertyValidator("transitGatewayAttachment",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.transitGatewayAttachment)),errors.collect(cdk().propertyValidator("transitGatewayRouteTable",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.transitGatewayRouteTable)),errors.collect(cdk().propertyValidator("transitGatewayRouteTableRoute",CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyValidator)(properties.transitGatewayRouteTableRoute)),errors.collect(cdk().propertyValidator("vpc",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.vpc)),errors.collect(cdk().propertyValidator("vpcPeeringConnection",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.vpcPeeringConnection)),errors.collect(cdk().propertyValidator("vpnConnection",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.vpnConnection)),errors.collect(cdk().propertyValidator("vpnGateway",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.vpnGateway)),errors.collect(cdk().propertyValidator("vpcEndpoint",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.vpcEndpoint)),errors.wrap('supplied properties not correct for "ExplanationProperty"')}function convertCfnNetworkInsightsAnalysisExplanationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisExplanationPropertyValidator(properties).assertSuccess(),{Acl:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.acl),AclRule:convertCfnNetworkInsightsAnalysisAnalysisAclRulePropertyToCloudFormation(properties.aclRule),Address:cdk().stringToCloudFormation(properties.address),Addresses:cdk().listMapper(cdk().stringToCloudFormation)(properties.addresses),AttachedTo:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.attachedTo),AvailabilityZones:cdk().listMapper(cdk().stringToCloudFormation)(properties.availabilityZones),Cidrs:cdk().listMapper(cdk().stringToCloudFormation)(properties.cidrs),ClassicLoadBalancerListener:convertCfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyToCloudFormation(properties.classicLoadBalancerListener),Component:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.component),ComponentAccount:cdk().stringToCloudFormation(properties.componentAccount),ComponentRegion:cdk().stringToCloudFormation(properties.componentRegion),CustomerGateway:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.customerGateway),Destination:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.destination),DestinationVpc:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.destinationVpc),Direction:cdk().stringToCloudFormation(properties.direction),ElasticLoadBalancerListener:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.elasticLoadBalancerListener),ExplanationCode:cdk().stringToCloudFormation(properties.explanationCode),IngressRouteTable:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.ingressRouteTable),InternetGateway:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.internetGateway),LoadBalancerArn:cdk().stringToCloudFormation(properties.loadBalancerArn),LoadBalancerListenerPort:cdk().numberToCloudFormation(properties.loadBalancerListenerPort),LoadBalancerTarget:convertCfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyToCloudFormation(properties.loadBalancerTarget),LoadBalancerTargetGroup:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.loadBalancerTargetGroup),LoadBalancerTargetGroups:cdk().listMapper(convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation)(properties.loadBalancerTargetGroups),LoadBalancerTargetPort:cdk().numberToCloudFormation(properties.loadBalancerTargetPort),MissingComponent:cdk().stringToCloudFormation(properties.missingComponent),NatGateway:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.natGateway),NetworkInterface:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.networkInterface),PacketField:cdk().stringToCloudFormation(properties.packetField),Port:cdk().numberToCloudFormation(properties.port),PortRanges:cdk().listMapper(convertCfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation)(properties.portRanges),PrefixList:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.prefixList),Protocols:cdk().listMapper(cdk().stringToCloudFormation)(properties.protocols),RouteTable:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.routeTable),RouteTableRoute:convertCfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyToCloudFormation(properties.routeTableRoute),SecurityGroup:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.securityGroup),SecurityGroupRule:convertCfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyToCloudFormation(properties.securityGroupRule),SecurityGroups:cdk().listMapper(convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation)(properties.securityGroups),SourceVpc:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.sourceVpc),State:cdk().stringToCloudFormation(properties.state),Subnet:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.subnet),SubnetRouteTable:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.subnetRouteTable),TransitGateway:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGateway),TransitGatewayAttachment:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGatewayAttachment),TransitGatewayRouteTable:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGatewayRouteTable),TransitGatewayRouteTableRoute:convertCfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyToCloudFormation(properties.transitGatewayRouteTableRoute),Vpc:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpc),VpcPeeringConnection:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpcPeeringConnection),VpnConnection:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpnConnection),VpnGateway:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpnGateway),vpcEndpoint:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpcEndpoint)}):properties}function CfnNetworkInsightsAnalysisExplanationPropertyFromCloudFormation(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("acl","Acl",properties.Acl!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Acl):void 0),ret.addPropertyResult("aclRule","AclRule",properties.AclRule!=null?CfnNetworkInsightsAnalysisAnalysisAclRulePropertyFromCloudFormation(properties.AclRule):void 0),ret.addPropertyResult("address","Address",properties.Address!=null?cfn_parse().FromCloudFormation.getString(properties.Address):void 0),ret.addPropertyResult("addresses","Addresses",properties.Addresses!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Addresses):void 0),ret.addPropertyResult("attachedTo","AttachedTo",properties.AttachedTo!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.AttachedTo):void 0),ret.addPropertyResult("availabilityZones","AvailabilityZones",properties.AvailabilityZones!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AvailabilityZones):void 0),ret.addPropertyResult("cidrs","Cidrs",properties.Cidrs!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Cidrs):void 0),ret.addPropertyResult("classicLoadBalancerListener","ClassicLoadBalancerListener",properties.ClassicLoadBalancerListener!=null?CfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyFromCloudFormation(properties.ClassicLoadBalancerListener):void 0),ret.addPropertyResult("component","Component",properties.Component!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Component):void 0),ret.addPropertyResult("componentAccount","ComponentAccount",properties.ComponentAccount!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentAccount):void 0),ret.addPropertyResult("componentRegion","ComponentRegion",properties.ComponentRegion!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentRegion):void 0),ret.addPropertyResult("customerGateway","CustomerGateway",properties.CustomerGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.CustomerGateway):void 0),ret.addPropertyResult("destination","Destination",properties.Destination!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Destination):void 0),ret.addPropertyResult("destinationVpc","DestinationVpc",properties.DestinationVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.DestinationVpc):void 0),ret.addPropertyResult("direction","Direction",properties.Direction!=null?cfn_parse().FromCloudFormation.getString(properties.Direction):void 0),ret.addPropertyResult("elasticLoadBalancerListener","ElasticLoadBalancerListener",properties.ElasticLoadBalancerListener!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.ElasticLoadBalancerListener):void 0),ret.addPropertyResult("explanationCode","ExplanationCode",properties.ExplanationCode!=null?cfn_parse().FromCloudFormation.getString(properties.ExplanationCode):void 0),ret.addPropertyResult("ingressRouteTable","IngressRouteTable",properties.IngressRouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.IngressRouteTable):void 0),ret.addPropertyResult("internetGateway","InternetGateway",properties.InternetGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.InternetGateway):void 0),ret.addPropertyResult("loadBalancerArn","LoadBalancerArn",properties.LoadBalancerArn!=null?cfn_parse().FromCloudFormation.getString(properties.LoadBalancerArn):void 0),ret.addPropertyResult("loadBalancerListenerPort","LoadBalancerListenerPort",properties.LoadBalancerListenerPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.LoadBalancerListenerPort):void 0),ret.addPropertyResult("loadBalancerTarget","LoadBalancerTarget",properties.LoadBalancerTarget!=null?CfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyFromCloudFormation(properties.LoadBalancerTarget):void 0),ret.addPropertyResult("loadBalancerTargetGroup","LoadBalancerTargetGroup",properties.LoadBalancerTargetGroup!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.LoadBalancerTargetGroup):void 0),ret.addPropertyResult("loadBalancerTargetGroups","LoadBalancerTargetGroups",properties.LoadBalancerTargetGroups!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation)(properties.LoadBalancerTargetGroups):void 0),ret.addPropertyResult("loadBalancerTargetPort","LoadBalancerTargetPort",properties.LoadBalancerTargetPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.LoadBalancerTargetPort):void 0),ret.addPropertyResult("missingComponent","MissingComponent",properties.MissingComponent!=null?cfn_parse().FromCloudFormation.getString(properties.MissingComponent):void 0),ret.addPropertyResult("natGateway","NatGateway",properties.NatGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.NatGateway):void 0),ret.addPropertyResult("networkInterface","NetworkInterface",properties.NetworkInterface!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.NetworkInterface):void 0),ret.addPropertyResult("packetField","PacketField",properties.PacketField!=null?cfn_parse().FromCloudFormation.getString(properties.PacketField):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("portRanges","PortRanges",properties.PortRanges!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation)(properties.PortRanges):void 0),ret.addPropertyResult("prefixList","PrefixList",properties.PrefixList!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.PrefixList):void 0),ret.addPropertyResult("protocols","Protocols",properties.Protocols!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Protocols):void 0),ret.addPropertyResult("routeTable","RouteTable",properties.RouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.RouteTable):void 0),ret.addPropertyResult("routeTableRoute","RouteTableRoute",properties.RouteTableRoute!=null?CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyFromCloudFormation(properties.RouteTableRoute):void 0),ret.addPropertyResult("securityGroup","SecurityGroup",properties.SecurityGroup!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SecurityGroup):void 0),ret.addPropertyResult("securityGroupRule","SecurityGroupRule",properties.SecurityGroupRule!=null?CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyFromCloudFormation(properties.SecurityGroupRule):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation)(properties.SecurityGroups):void 0),ret.addPropertyResult("sourceVpc","SourceVpc",properties.SourceVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SourceVpc):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addPropertyResult("subnet","Subnet",properties.Subnet!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Subnet):void 0),ret.addPropertyResult("subnetRouteTable","SubnetRouteTable",properties.SubnetRouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SubnetRouteTable):void 0),ret.addPropertyResult("transitGateway","TransitGateway",properties.TransitGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGateway):void 0),ret.addPropertyResult("transitGatewayAttachment","TransitGatewayAttachment",properties.TransitGatewayAttachment!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGatewayAttachment):void 0),ret.addPropertyResult("transitGatewayRouteTable","TransitGatewayRouteTable",properties.TransitGatewayRouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGatewayRouteTable):void 0),ret.addPropertyResult("transitGatewayRouteTableRoute","TransitGatewayRouteTableRoute",properties.TransitGatewayRouteTableRoute!=null?CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyFromCloudFormation(properties.TransitGatewayRouteTableRoute):void 0),ret.addPropertyResult("vpc","Vpc",properties.Vpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Vpc):void 0),ret.addPropertyResult("vpcEndpoint","vpcEndpoint",properties.vpcEndpoint!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.vpcEndpoint):void 0),ret.addPropertyResult("vpcPeeringConnection","VpcPeeringConnection",properties.VpcPeeringConnection!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.VpcPeeringConnection):void 0),ret.addPropertyResult("vpnConnection","VpnConnection",properties.VpnConnection!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.VpnConnection):void 0),ret.addPropertyResult("vpnGateway","VpnGateway",properties.VpnGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.VpnGateway):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisPathComponentPropertyValidator(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("aclRule",CfnNetworkInsightsAnalysisAnalysisAclRulePropertyValidator)(properties.aclRule)),errors.collect(cdk().propertyValidator("additionalDetails",cdk().listValidator(CfnNetworkInsightsAnalysisAdditionalDetailPropertyValidator))(properties.additionalDetails)),errors.collect(cdk().propertyValidator("component",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.component)),errors.collect(cdk().propertyValidator("destinationVpc",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.destinationVpc)),errors.collect(cdk().propertyValidator("elasticLoadBalancerListener",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.elasticLoadBalancerListener)),errors.collect(cdk().propertyValidator("explanations",cdk().listValidator(CfnNetworkInsightsAnalysisExplanationPropertyValidator))(properties.explanations)),errors.collect(cdk().propertyValidator("inboundHeader",CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyValidator)(properties.inboundHeader)),errors.collect(cdk().propertyValidator("outboundHeader",CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyValidator)(properties.outboundHeader)),errors.collect(cdk().propertyValidator("routeTableRoute",CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyValidator)(properties.routeTableRoute)),errors.collect(cdk().propertyValidator("securityGroupRule",CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyValidator)(properties.securityGroupRule)),errors.collect(cdk().propertyValidator("sequenceNumber",cdk().validateNumber)(properties.sequenceNumber)),errors.collect(cdk().propertyValidator("serviceName",cdk().validateString)(properties.serviceName)),errors.collect(cdk().propertyValidator("sourceVpc",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.sourceVpc)),errors.collect(cdk().propertyValidator("subnet",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.subnet)),errors.collect(cdk().propertyValidator("transitGateway",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.transitGateway)),errors.collect(cdk().propertyValidator("transitGatewayRouteTableRoute",CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyValidator)(properties.transitGatewayRouteTableRoute)),errors.collect(cdk().propertyValidator("vpc",CfnNetworkInsightsAnalysisAnalysisComponentPropertyValidator)(properties.vpc)),errors.wrap('supplied properties not correct for "PathComponentProperty"')}function convertCfnNetworkInsightsAnalysisPathComponentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisPathComponentPropertyValidator(properties).assertSuccess(),{AclRule:convertCfnNetworkInsightsAnalysisAnalysisAclRulePropertyToCloudFormation(properties.aclRule),AdditionalDetails:cdk().listMapper(convertCfnNetworkInsightsAnalysisAdditionalDetailPropertyToCloudFormation)(properties.additionalDetails),Component:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.component),DestinationVpc:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.destinationVpc),ElasticLoadBalancerListener:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.elasticLoadBalancerListener),Explanations:cdk().listMapper(convertCfnNetworkInsightsAnalysisExplanationPropertyToCloudFormation)(properties.explanations),InboundHeader:convertCfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyToCloudFormation(properties.inboundHeader),OutboundHeader:convertCfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyToCloudFormation(properties.outboundHeader),RouteTableRoute:convertCfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyToCloudFormation(properties.routeTableRoute),SecurityGroupRule:convertCfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyToCloudFormation(properties.securityGroupRule),SequenceNumber:cdk().numberToCloudFormation(properties.sequenceNumber),ServiceName:cdk().stringToCloudFormation(properties.serviceName),SourceVpc:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.sourceVpc),Subnet:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.subnet),TransitGateway:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGateway),TransitGatewayRouteTableRoute:convertCfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyToCloudFormation(properties.transitGatewayRouteTableRoute),Vpc:convertCfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpc)}):properties}function CfnNetworkInsightsAnalysisPathComponentPropertyFromCloudFormation(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("aclRule","AclRule",properties.AclRule!=null?CfnNetworkInsightsAnalysisAnalysisAclRulePropertyFromCloudFormation(properties.AclRule):void 0),ret.addPropertyResult("additionalDetails","AdditionalDetails",properties.AdditionalDetails!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInsightsAnalysisAdditionalDetailPropertyFromCloudFormation)(properties.AdditionalDetails):void 0),ret.addPropertyResult("component","Component",properties.Component!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Component):void 0),ret.addPropertyResult("destinationVpc","DestinationVpc",properties.DestinationVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.DestinationVpc):void 0),ret.addPropertyResult("elasticLoadBalancerListener","ElasticLoadBalancerListener",properties.ElasticLoadBalancerListener!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.ElasticLoadBalancerListener):void 0),ret.addPropertyResult("explanations","Explanations",properties.Explanations!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInsightsAnalysisExplanationPropertyFromCloudFormation)(properties.Explanations):void 0),ret.addPropertyResult("inboundHeader","InboundHeader",properties.InboundHeader!=null?CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyFromCloudFormation(properties.InboundHeader):void 0),ret.addPropertyResult("outboundHeader","OutboundHeader",properties.OutboundHeader!=null?CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyFromCloudFormation(properties.OutboundHeader):void 0),ret.addPropertyResult("routeTableRoute","RouteTableRoute",properties.RouteTableRoute!=null?CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyFromCloudFormation(properties.RouteTableRoute):void 0),ret.addPropertyResult("securityGroupRule","SecurityGroupRule",properties.SecurityGroupRule!=null?CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyFromCloudFormation(properties.SecurityGroupRule):void 0),ret.addPropertyResult("sequenceNumber","SequenceNumber",properties.SequenceNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.SequenceNumber):void 0),ret.addPropertyResult("serviceName","ServiceName",properties.ServiceName!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceName):void 0),ret.addPropertyResult("sourceVpc","SourceVpc",properties.SourceVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SourceVpc):void 0),ret.addPropertyResult("subnet","Subnet",properties.Subnet!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Subnet):void 0),ret.addPropertyResult("transitGateway","TransitGateway",properties.TransitGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGateway):void 0),ret.addPropertyResult("transitGatewayRouteTableRoute","TransitGatewayRouteTableRoute",properties.TransitGatewayRouteTableRoute!=null?CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyFromCloudFormation(properties.TransitGatewayRouteTableRoute):void 0),ret.addPropertyResult("vpc","Vpc",properties.Vpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Vpc):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisAlternatePathHintPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("componentArn",cdk().validateString)(properties.componentArn)),errors.collect(cdk().propertyValidator("componentId",cdk().validateString)(properties.componentId)),errors.wrap('supplied properties not correct for "AlternatePathHintProperty"')}function convertCfnNetworkInsightsAnalysisAlternatePathHintPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisAlternatePathHintPropertyValidator(properties).assertSuccess(),{ComponentArn:cdk().stringToCloudFormation(properties.componentArn),ComponentId:cdk().stringToCloudFormation(properties.componentId)}):properties}function CfnNetworkInsightsAnalysisAlternatePathHintPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("componentArn","ComponentArn",properties.ComponentArn!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentArn):void 0),ret.addPropertyResult("componentId","ComponentId",properties.ComponentId!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysisPropsValidator(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("additionalAccounts",cdk().listValidator(cdk().validateString))(properties.additionalAccounts)),errors.collect(cdk().propertyValidator("filterInArns",cdk().listValidator(cdk().validateString))(properties.filterInArns)),errors.collect(cdk().propertyValidator("filterOutArns",cdk().listValidator(cdk().validateString))(properties.filterOutArns)),errors.collect(cdk().propertyValidator("networkInsightsPathId",cdk().requiredValidator)(properties.networkInsightsPathId)),errors.collect(cdk().propertyValidator("networkInsightsPathId",cdk().validateString)(properties.networkInsightsPathId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsAnalysisProps"')}function convertCfnNetworkInsightsAnalysisPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsAnalysisPropsValidator(properties).assertSuccess(),{AdditionalAccounts:cdk().listMapper(cdk().stringToCloudFormation)(properties.additionalAccounts),FilterInArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.filterInArns),FilterOutArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.filterOutArns),NetworkInsightsPathId:cdk().stringToCloudFormation(properties.networkInsightsPathId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsAnalysisPropsFromCloudFormation(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("additionalAccounts","AdditionalAccounts",properties.AdditionalAccounts!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AdditionalAccounts):void 0),ret.addPropertyResult("filterInArns","FilterInArns",properties.FilterInArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.FilterInArns):void 0),ret.addPropertyResult("filterOutArns","FilterOutArns",properties.FilterOutArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.FilterOutArns):void 0),ret.addPropertyResult("networkInsightsPathId","NetworkInsightsPathId",properties.NetworkInsightsPathId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInsightsPathId):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 CfnNetworkInsightsPath extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsPath",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsPath";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsPathPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnNetworkInsightsPath(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 isCfnNetworkInsightsPath(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnNetworkInsightsPath.CFN_RESOURCE_TYPE_NAME}static fromNetworkInsightsPathArn(scope,id,arn){class Import extends cdk().Resource{networkInsightsPathRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:network-insights-path/${NetworkInsightsPathId}").parse(arn2);this.networkInsightsPathRef={networkInsightsPathId:variables.NetworkInsightsPathId,networkInsightsPathArn:arn2}}}return new Import(scope,id,arn)}static fromNetworkInsightsPathId(scope,id,networkInsightsPathId){class Import extends cdk().Resource{networkInsightsPathRef;constructor(scope2,id2,networkInsightsPathId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:network-insights-path/${NetworkInsightsPathId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,NetworkInsightsPathId:networkInsightsPathId2});super(scope2,id2,{environmentFromArn:arn}),this.networkInsightsPathRef={networkInsightsPathId:networkInsightsPathId2,networkInsightsPathArn:arn}}}return new Import(scope,id,networkInsightsPathId)}static arnForNetworkInsightsPath(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_INetworkInsightsPathRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForNetworkInsightsPath),error}return resource.networkInsightsPathRef.networkInsightsPathArn}_destination;_destinationIp;_destinationPort;_filterAtDestination;_filterAtSource;_protocol;_source;_sourceIp;tags;_tagsRaw;cfnPropertyNames={destination:"Destination",destinationIp:"DestinationIp",destinationPort:"DestinationPort",filterAtDestination:"FilterAtDestination",filterAtSource:"FilterAtSource",protocol:"Protocol",source:"Source",sourceIp:"SourceIp",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnNetworkInsightsPath.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnNetworkInsightsPathProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsPath),error}cdk().requireProperty(props,"protocol",this),cdk().requireProperty(props,"source",this),this._destination=props.destination,this._destinationIp=props.destinationIp,this._destinationPort=props.destinationPort,this._filterAtDestination=props.filterAtDestination,this._filterAtSource=props.filterAtSource,this._protocol=props.protocol,this._source=props.source,this._sourceIp=props.sourceIp,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::NetworkInsightsPath",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get networkInsightsPathRef(){return{networkInsightsPathId:this.ref,networkInsightsPathArn:this.attrNetworkInsightsPathArn}}get destination(){return this._destination}set destination(value){cdk().traceProperty(this.node,"Destination"),this._destination=value}get destinationIp(){return this._destinationIp}set destinationIp(value){cdk().traceProperty(this.node,"DestinationIp"),this._destinationIp=value}get destinationPort(){return this._destinationPort}set destinationPort(value){cdk().traceProperty(this.node,"DestinationPort"),this._destinationPort=value}get filterAtDestination(){return this._filterAtDestination}set filterAtDestination(value){cdk().traceProperty(this.node,"FilterAtDestination"),this._filterAtDestination=value}get filterAtSource(){return this._filterAtSource}set filterAtSource(value){cdk().traceProperty(this.node,"FilterAtSource"),this._filterAtSource=value}get protocol(){return this._protocol}set protocol(value){cdk().traceProperty(this.node,"Protocol"),this._protocol=value}get source(){return this._source}set source(value){cdk().traceProperty(this.node,"Source"),this._source=value}get sourceIp(){return this._sourceIp}set sourceIp(value){cdk().traceProperty(this.node,"SourceIp"),this._sourceIp=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrCreatedDate(){return cdk().Token.asString(this.getAtt("CreatedDate",cdk().ResolutionTypeHint.STRING))}get attrDestinationArn(){return cdk().Token.asString(this.getAtt("DestinationArn",cdk().ResolutionTypeHint.STRING))}get attrNetworkInsightsPathArn(){return cdk().Token.asString(this.getAtt("NetworkInsightsPathArn",cdk().ResolutionTypeHint.STRING))}get attrNetworkInsightsPathId(){return cdk().Token.asString(this.getAtt("NetworkInsightsPathId",cdk().ResolutionTypeHint.STRING))}get attrSourceArn(){return cdk().Token.asString(this.getAtt("SourceArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{destination:this._destination,destinationIp:this._destinationIp,destinationPort:this._destinationPort,filterAtDestination:this._filterAtDestination,filterAtSource:this._filterAtSource,protocol:this._protocol,source:this._source,sourceIp:this._sourceIp,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",CfnNetworkInsightsPath.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnNetworkInsightsPathPropsToCloudFormation(props)}}exports.CfnNetworkInsightsPath=CfnNetworkInsightsPath;function CfnNetworkInsightsPathFilterPortRangePropertyValidator(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("fromPort",cdk().validateNumber)(properties.fromPort)),errors.collect(cdk().propertyValidator("toPort",cdk().validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "FilterPortRangeProperty"')}function convertCfnNetworkInsightsPathFilterPortRangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsPathFilterPortRangePropertyValidator(properties).assertSuccess(),{FromPort:cdk().numberToCloudFormation(properties.fromPort),ToPort:cdk().numberToCloudFormation(properties.toPort)}):properties}function CfnNetworkInsightsPathFilterPortRangePropertyFromCloudFormation(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("fromPort","FromPort",properties.FromPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsPathPathFilterPropertyValidator(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("destinationAddress",cdk().validateString)(properties.destinationAddress)),errors.collect(cdk().propertyValidator("destinationPortRange",CfnNetworkInsightsPathFilterPortRangePropertyValidator)(properties.destinationPortRange)),errors.collect(cdk().propertyValidator("sourceAddress",cdk().validateString)(properties.sourceAddress)),errors.collect(cdk().propertyValidator("sourcePortRange",CfnNetworkInsightsPathFilterPortRangePropertyValidator)(properties.sourcePortRange)),errors.wrap('supplied properties not correct for "PathFilterProperty"')}function convertCfnNetworkInsightsPathPathFilterPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsPathPathFilterPropertyValidator(properties).assertSuccess(),{DestinationAddress:cdk().stringToCloudFormation(properties.destinationAddress),DestinationPortRange:convertCfnNetworkInsightsPathFilterPortRangePropertyToCloudFormation(properties.destinationPortRange),SourceAddress:cdk().stringToCloudFormation(properties.sourceAddress),SourcePortRange:convertCfnNetworkInsightsPathFilterPortRangePropertyToCloudFormation(properties.sourcePortRange)}):properties}function CfnNetworkInsightsPathPathFilterPropertyFromCloudFormation(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("destinationAddress","DestinationAddress",properties.DestinationAddress!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationAddress):void 0),ret.addPropertyResult("destinationPortRange","DestinationPortRange",properties.DestinationPortRange!=null?CfnNetworkInsightsPathFilterPortRangePropertyFromCloudFormation(properties.DestinationPortRange):void 0),ret.addPropertyResult("sourceAddress","SourceAddress",properties.SourceAddress!=null?cfn_parse().FromCloudFormation.getString(properties.SourceAddress):void 0),ret.addPropertyResult("sourcePortRange","SourcePortRange",properties.SourcePortRange!=null?CfnNetworkInsightsPathFilterPortRangePropertyFromCloudFormation(properties.SourcePortRange):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsPathPropsValidator(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("destination",cdk().validateString)(properties.destination)),errors.collect(cdk().propertyValidator("destinationIp",cdk().validateString)(properties.destinationIp)),errors.collect(cdk().propertyValidator("destinationPort",cdk().validateNumber)(properties.destinationPort)),errors.collect(cdk().propertyValidator("filterAtDestination",CfnNetworkInsightsPathPathFilterPropertyValidator)(properties.filterAtDestination)),errors.collect(cdk().propertyValidator("filterAtSource",CfnNetworkInsightsPathPathFilterPropertyValidator)(properties.filterAtSource)),errors.collect(cdk().propertyValidator("protocol",cdk().requiredValidator)(properties.protocol)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("source",cdk().requiredValidator)(properties.source)),errors.collect(cdk().propertyValidator("source",cdk().validateString)(properties.source)),errors.collect(cdk().propertyValidator("sourceIp",cdk().validateString)(properties.sourceIp)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsPathProps"')}function convertCfnNetworkInsightsPathPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInsightsPathPropsValidator(properties).assertSuccess(),{Destination:cdk().stringToCloudFormation(properties.destination),DestinationIp:cdk().stringToCloudFormation(properties.destinationIp),DestinationPort:cdk().numberToCloudFormation(properties.destinationPort),FilterAtDestination:convertCfnNetworkInsightsPathPathFilterPropertyToCloudFormation(properties.filterAtDestination),FilterAtSource:convertCfnNetworkInsightsPathPathFilterPropertyToCloudFormation(properties.filterAtSource),Protocol:cdk().stringToCloudFormation(properties.protocol),Source:cdk().stringToCloudFormation(properties.source),SourceIp:cdk().stringToCloudFormation(properties.sourceIp),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsPathPropsFromCloudFormation(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("destination","Destination",properties.Destination!=null?cfn_parse().FromCloudFormation.getString(properties.Destination):void 0),ret.addPropertyResult("destinationIp","DestinationIp",properties.DestinationIp!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationIp):void 0),ret.addPropertyResult("destinationPort","DestinationPort",properties.DestinationPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.DestinationPort):void 0),ret.addPropertyResult("filterAtDestination","FilterAtDestination",properties.FilterAtDestination!=null?CfnNetworkInsightsPathPathFilterPropertyFromCloudFormation(properties.FilterAtDestination):void 0),ret.addPropertyResult("filterAtSource","FilterAtSource",properties.FilterAtSource!=null?CfnNetworkInsightsPathPathFilterPropertyFromCloudFormation(properties.FilterAtSource):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("source","Source",properties.Source!=null?cfn_parse().FromCloudFormation.getString(properties.Source):void 0),ret.addPropertyResult("sourceIp","SourceIp",properties.SourceIp!=null?cfn_parse().FromCloudFormation.getString(properties.SourceIp):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 CfnNetworkInterface extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInterface",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInterface";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInterfacePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnNetworkInterface(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 isCfnNetworkInterface(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnNetworkInterface.CFN_RESOURCE_TYPE_NAME}static fromNetworkInterfaceId(scope,id,networkInterfaceId){class Import extends cdk().Resource{networkInterfaceRef;constructor(scope2,id2,networkInterfaceId2){super(scope2,id2),this.networkInterfaceRef={networkInterfaceId:networkInterfaceId2}}}return new Import(scope,id,networkInterfaceId)}static arnForNetworkInterface(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_INetworkInterfaceRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForNetworkInterface),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:network-interface/${NetworkInterfaceId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,NetworkInterfaceId:resource.networkInterfaceRef.networkInterfaceId})}_connectionTrackingSpecification;_description;_enablePrimaryIpv6;_groupSet;_interfaceType;_ipv4PrefixCount;_ipv4Prefixes;_ipv6AddressCount;_ipv6Addresses;_ipv6PrefixCount;_ipv6Prefixes;_privateIpAddress;_privateIpAddresses;_publicIpDnsHostnameTypeSpecification;_secondaryPrivateIpAddressCount;_sourceDestCheck;_subnetId;tags;_tagsRaw;cfnPropertyNames={connectionTrackingSpecification:"ConnectionTrackingSpecification",description:"Description",enablePrimaryIpv6:"EnablePrimaryIpv6",groupSet:"GroupSet",interfaceType:"InterfaceType",ipv4PrefixCount:"Ipv4PrefixCount",ipv4Prefixes:"Ipv4Prefixes",ipv6AddressCount:"Ipv6AddressCount",ipv6Addresses:"Ipv6Addresses",ipv6PrefixCount:"Ipv6PrefixCount",ipv6Prefixes:"Ipv6Prefixes",privateIpAddress:"PrivateIpAddress",privateIpAddresses:"PrivateIpAddresses",publicIpDnsHostnameTypeSpecification:"PublicIpDnsHostnameTypeSpecification",secondaryPrivateIpAddressCount:"SecondaryPrivateIpAddressCount",sourceDestCheck:"SourceDestCheck",subnetId:"SubnetId",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnNetworkInterface.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnNetworkInterfaceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInterface),error}cdk().requireProperty(props,"subnetId",this),this._connectionTrackingSpecification=props.connectionTrackingSpecification,this._description=props.description,this._enablePrimaryIpv6=props.enablePrimaryIpv6,this._groupSet=cdk().mapArrayInPlace(props.groupSet,item=>cdk().getRefProperty(item?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(item,"groupSet","ec2.ISecurityGroupRef | string")),this._interfaceType=props.interfaceType,this._ipv4PrefixCount=props.ipv4PrefixCount,this._ipv4Prefixes=props.ipv4Prefixes,this._ipv6AddressCount=props.ipv6AddressCount,this._ipv6Addresses=props.ipv6Addresses,this._ipv6PrefixCount=props.ipv6PrefixCount,this._ipv6Prefixes=props.ipv6Prefixes,this._privateIpAddress=props.privateIpAddress,this._privateIpAddresses=props.privateIpAddresses,this._publicIpDnsHostnameTypeSpecification=props.publicIpDnsHostnameTypeSpecification,this._secondaryPrivateIpAddressCount=props.secondaryPrivateIpAddressCount,this._sourceDestCheck=props.sourceDestCheck,this._subnetId=cdk().getRefProperty(props.subnetId?.subnetRef,"subnetId")??cdk().ensureStringOrUndefined(props.subnetId,"subnetId","ec2.ISubnetRef | string"),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::NetworkInterface",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get networkInterfaceRef(){return{networkInterfaceId:this.ref}}get connectionTrackingSpecification(){return this._connectionTrackingSpecification}set connectionTrackingSpecification(value){cdk().traceProperty(this.node,"ConnectionTrackingSpecification"),this._connectionTrackingSpecification=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get enablePrimaryIpv6(){return this._enablePrimaryIpv6}set enablePrimaryIpv6(value){cdk().traceProperty(this.node,"EnablePrimaryIpv6"),this._enablePrimaryIpv6=value}get groupSet(){return this._groupSet}set groupSet(value){cdk().traceProperty(this.node,"GroupSet"),this._groupSet=value}get interfaceType(){return this._interfaceType}set interfaceType(value){cdk().traceProperty(this.node,"InterfaceType"),this._interfaceType=value}get ipv4PrefixCount(){return this._ipv4PrefixCount}set ipv4PrefixCount(value){cdk().traceProperty(this.node,"Ipv4PrefixCount"),this._ipv4PrefixCount=value}get ipv4Prefixes(){return this._ipv4Prefixes}set ipv4Prefixes(value){cdk().traceProperty(this.node,"Ipv4Prefixes"),this._ipv4Prefixes=value}get ipv6AddressCount(){return this._ipv6AddressCount}set ipv6AddressCount(value){cdk().traceProperty(this.node,"Ipv6AddressCount"),this._ipv6AddressCount=value}get ipv6Addresses(){return this._ipv6Addresses}set ipv6Addresses(value){cdk().traceProperty(this.node,"Ipv6Addresses"),this._ipv6Addresses=value}get ipv6PrefixCount(){return this._ipv6PrefixCount}set ipv6PrefixCount(value){cdk().traceProperty(this.node,"Ipv6PrefixCount"),this._ipv6PrefixCount=value}get ipv6Prefixes(){return this._ipv6Prefixes}set ipv6Prefixes(value){cdk().traceProperty(this.node,"Ipv6Prefixes"),this._ipv6Prefixes=value}get privateIpAddress(){return this._privateIpAddress}set privateIpAddress(value){cdk().traceProperty(this.node,"PrivateIpAddress"),this._privateIpAddress=value}get privateIpAddresses(){return this._privateIpAddresses}set privateIpAddresses(value){cdk().traceProperty(this.node,"PrivateIpAddresses"),this._privateIpAddresses=value}get publicIpDnsHostnameTypeSpecification(){return this._publicIpDnsHostnameTypeSpecification}set publicIpDnsHostnameTypeSpecification(value){cdk().traceProperty(this.node,"PublicIpDnsHostnameTypeSpecification"),this._publicIpDnsHostnameTypeSpecification=value}get secondaryPrivateIpAddressCount(){return this._secondaryPrivateIpAddressCount}set secondaryPrivateIpAddressCount(value){cdk().traceProperty(this.node,"SecondaryPrivateIpAddressCount"),this._secondaryPrivateIpAddressCount=value}get sourceDestCheck(){return this._sourceDestCheck}set sourceDestCheck(value){cdk().traceProperty(this.node,"SourceDestCheck"),this._sourceDestCheck=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrPrimaryIpv6Address(){return cdk().Token.asString(this.getAtt("PrimaryIpv6Address",cdk().ResolutionTypeHint.STRING))}get attrPrimaryPrivateIpAddress(){return cdk().Token.asString(this.getAtt("PrimaryPrivateIpAddress",cdk().ResolutionTypeHint.STRING))}get attrPublicIpDnsNameOptions(){return this.getAtt("PublicIpDnsNameOptions")}get attrSecondaryPrivateIpAddresses(){return cdk().Token.asList(this.getAtt("SecondaryPrivateIpAddresses",cdk().ResolutionTypeHint.STRING_LIST))}get attrVpcId(){return cdk().Token.asString(this.getAtt("VpcId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{connectionTrackingSpecification:this._connectionTrackingSpecification,description:this._description,enablePrimaryIpv6:this._enablePrimaryIpv6,groupSet:this._groupSet,interfaceType:this._interfaceType,ipv4PrefixCount:this._ipv4PrefixCount,ipv4Prefixes:this._ipv4Prefixes,ipv6AddressCount:this._ipv6AddressCount,ipv6Addresses:this._ipv6Addresses,ipv6PrefixCount:this._ipv6PrefixCount,ipv6Prefixes:this._ipv6Prefixes,privateIpAddress:this._privateIpAddress,privateIpAddresses:this._privateIpAddresses,publicIpDnsHostnameTypeSpecification:this._publicIpDnsHostnameTypeSpecification,secondaryPrivateIpAddressCount:this._secondaryPrivateIpAddressCount,sourceDestCheck:this._sourceDestCheck,subnetId:this._subnetId,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",CfnNetworkInterface.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnNetworkInterfacePropsToCloudFormation(props)}}exports.CfnNetworkInterface=CfnNetworkInterface;function CfnNetworkInterfacePrivateIpAddressSpecificationPropertyValidator(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("primary",cdk().requiredValidator)(properties.primary)),errors.collect(cdk().propertyValidator("primary",cdk().validateBoolean)(properties.primary)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().requiredValidator)(properties.privateIpAddress)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddressSpecificationProperty"')}function convertCfnNetworkInterfacePrivateIpAddressSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInterfacePrivateIpAddressSpecificationPropertyValidator(properties).assertSuccess(),{Primary:cdk().booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnNetworkInterfacePrivateIpAddressSpecificationPropertyFromCloudFormation(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("primary","Primary",properties.Primary!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Primary):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterfaceIpv4PrefixSpecificationPropertyValidator(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("ipv4Prefix",cdk().requiredValidator)(properties.ipv4Prefix)),errors.collect(cdk().propertyValidator("ipv4Prefix",cdk().validateString)(properties.ipv4Prefix)),errors.wrap('supplied properties not correct for "Ipv4PrefixSpecificationProperty"')}function convertCfnNetworkInterfaceIpv4PrefixSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInterfaceIpv4PrefixSpecificationPropertyValidator(properties).assertSuccess(),{Ipv4Prefix:cdk().stringToCloudFormation(properties.ipv4Prefix)}):properties}function CfnNetworkInterfaceIpv4PrefixSpecificationPropertyFromCloudFormation(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("ipv4Prefix","Ipv4Prefix",properties.Ipv4Prefix!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv4Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterfaceInstanceIpv6AddressPropertyValidator(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("ipv6Address",cdk().requiredValidator)(properties.ipv6Address)),errors.collect(cdk().propertyValidator("ipv6Address",cdk().validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "InstanceIpv6AddressProperty"')}function convertCfnNetworkInterfaceInstanceIpv6AddressPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInterfaceInstanceIpv6AddressPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk().stringToCloudFormation(properties.ipv6Address)}):properties}function CfnNetworkInterfaceInstanceIpv6AddressPropertyFromCloudFormation(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("ipv6Address","Ipv6Address",properties.Ipv6Address!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6Address):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterfaceIpv6PrefixSpecificationPropertyValidator(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("ipv6Prefix",cdk().requiredValidator)(properties.ipv6Prefix)),errors.collect(cdk().propertyValidator("ipv6Prefix",cdk().validateString)(properties.ipv6Prefix)),errors.wrap('supplied properties not correct for "Ipv6PrefixSpecificationProperty"')}function convertCfnNetworkInterfaceIpv6PrefixSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInterfaceIpv6PrefixSpecificationPropertyValidator(properties).assertSuccess(),{Ipv6Prefix:cdk().stringToCloudFormation(properties.ipv6Prefix)}):properties}function CfnNetworkInterfaceIpv6PrefixSpecificationPropertyFromCloudFormation(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("ipv6Prefix","Ipv6Prefix",properties.Ipv6Prefix!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterfaceConnectionTrackingSpecificationPropertyValidator(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("tcpEstablishedTimeout",cdk().validateNumber)(properties.tcpEstablishedTimeout)),errors.collect(cdk().propertyValidator("udpStreamTimeout",cdk().validateNumber)(properties.udpStreamTimeout)),errors.collect(cdk().propertyValidator("udpTimeout",cdk().validateNumber)(properties.udpTimeout)),errors.wrap('supplied properties not correct for "ConnectionTrackingSpecificationProperty"')}function convertCfnNetworkInterfaceConnectionTrackingSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInterfaceConnectionTrackingSpecificationPropertyValidator(properties).assertSuccess(),{TcpEstablishedTimeout:cdk().numberToCloudFormation(properties.tcpEstablishedTimeout),UdpStreamTimeout:cdk().numberToCloudFormation(properties.udpStreamTimeout),UdpTimeout:cdk().numberToCloudFormation(properties.udpTimeout)}):properties}function CfnNetworkInterfaceConnectionTrackingSpecificationPropertyFromCloudFormation(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("tcpEstablishedTimeout","TcpEstablishedTimeout",properties.TcpEstablishedTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.TcpEstablishedTimeout):void 0),ret.addPropertyResult("udpStreamTimeout","UdpStreamTimeout",properties.UdpStreamTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.UdpStreamTimeout):void 0),ret.addPropertyResult("udpTimeout","UdpTimeout",properties.UdpTimeout!=null?cfn_parse().FromCloudFormation.getNumber(properties.UdpTimeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterfacePublicIpDnsNameOptionsPropertyValidator(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("dnsHostnameType",cdk().validateString)(properties.dnsHostnameType)),errors.collect(cdk().propertyValidator("publicDualStackDnsName",cdk().validateString)(properties.publicDualStackDnsName)),errors.collect(cdk().propertyValidator("publicIpv4DnsName",cdk().validateString)(properties.publicIpv4DnsName)),errors.collect(cdk().propertyValidator("publicIpv6DnsName",cdk().validateString)(properties.publicIpv6DnsName)),errors.wrap('supplied properties not correct for "PublicIpDnsNameOptionsProperty"')}function convertCfnNetworkInterfacePublicIpDnsNameOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInterfacePublicIpDnsNameOptionsPropertyValidator(properties).assertSuccess(),{DnsHostnameType:cdk().stringToCloudFormation(properties.dnsHostnameType),PublicDualStackDnsName:cdk().stringToCloudFormation(properties.publicDualStackDnsName),PublicIpv4DnsName:cdk().stringToCloudFormation(properties.publicIpv4DnsName),PublicIpv6DnsName:cdk().stringToCloudFormation(properties.publicIpv6DnsName)}):properties}function CfnNetworkInterfacePublicIpDnsNameOptionsPropertyFromCloudFormation(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("dnsHostnameType","DnsHostnameType",properties.DnsHostnameType!=null?cfn_parse().FromCloudFormation.getString(properties.DnsHostnameType):void 0),ret.addPropertyResult("publicDualStackDnsName","PublicDualStackDnsName",properties.PublicDualStackDnsName!=null?cfn_parse().FromCloudFormation.getString(properties.PublicDualStackDnsName):void 0),ret.addPropertyResult("publicIpv4DnsName","PublicIpv4DnsName",properties.PublicIpv4DnsName!=null?cfn_parse().FromCloudFormation.getString(properties.PublicIpv4DnsName):void 0),ret.addPropertyResult("publicIpv6DnsName","PublicIpv6DnsName",properties.PublicIpv6DnsName!=null?cfn_parse().FromCloudFormation.getString(properties.PublicIpv6DnsName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterfacePropsValidator(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("connectionTrackingSpecification",CfnNetworkInterfaceConnectionTrackingSpecificationPropertyValidator)(properties.connectionTrackingSpecification)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("enablePrimaryIpv6",cdk().validateBoolean)(properties.enablePrimaryIpv6)),errors.collect(cdk().propertyValidator("groupSet",cdk().listValidator(cdk().validateString))(properties.groupSet)),errors.collect(cdk().propertyValidator("interfaceType",cdk().validateString)(properties.interfaceType)),errors.collect(cdk().propertyValidator("ipv4PrefixCount",cdk().validateNumber)(properties.ipv4PrefixCount)),errors.collect(cdk().propertyValidator("ipv4Prefixes",cdk().listValidator(CfnNetworkInterfaceIpv4PrefixSpecificationPropertyValidator))(properties.ipv4Prefixes)),errors.collect(cdk().propertyValidator("ipv6AddressCount",cdk().validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk().propertyValidator("ipv6Addresses",cdk().listValidator(CfnNetworkInterfaceInstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk().propertyValidator("ipv6PrefixCount",cdk().validateNumber)(properties.ipv6PrefixCount)),errors.collect(cdk().propertyValidator("ipv6Prefixes",cdk().listValidator(CfnNetworkInterfaceIpv6PrefixSpecificationPropertyValidator))(properties.ipv6Prefixes)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.collect(cdk().propertyValidator("privateIpAddresses",cdk().listValidator(CfnNetworkInterfacePrivateIpAddressSpecificationPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk().propertyValidator("publicIpDnsHostnameTypeSpecification",cdk().validateString)(properties.publicIpDnsHostnameTypeSpecification)),errors.collect(cdk().propertyValidator("secondaryPrivateIpAddressCount",cdk().validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk().propertyValidator("sourceDestCheck",cdk().validateBoolean)(properties.sourceDestCheck)),errors.collect(cdk().propertyValidator("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInterfaceProps"')}function convertCfnNetworkInterfacePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInterfacePropsValidator(properties).assertSuccess(),{ConnectionTrackingSpecification:convertCfnNetworkInterfaceConnectionTrackingSpecificationPropertyToCloudFormation(properties.connectionTrackingSpecification),Description:cdk().stringToCloudFormation(properties.description),EnablePrimaryIpv6:cdk().booleanToCloudFormation(properties.enablePrimaryIpv6),GroupSet:cdk().listMapper(cdk().stringToCloudFormation)(properties.groupSet),InterfaceType:cdk().stringToCloudFormation(properties.interfaceType),Ipv4PrefixCount:cdk().numberToCloudFormation(properties.ipv4PrefixCount),Ipv4Prefixes:cdk().listMapper(convertCfnNetworkInterfaceIpv4PrefixSpecificationPropertyToCloudFormation)(properties.ipv4Prefixes),Ipv6AddressCount:cdk().numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk().listMapper(convertCfnNetworkInterfaceInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),Ipv6PrefixCount:cdk().numberToCloudFormation(properties.ipv6PrefixCount),Ipv6Prefixes:cdk().listMapper(convertCfnNetworkInterfaceIpv6PrefixSpecificationPropertyToCloudFormation)(properties.ipv6Prefixes),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress),PrivateIpAddresses:cdk().listMapper(convertCfnNetworkInterfacePrivateIpAddressSpecificationPropertyToCloudFormation)(properties.privateIpAddresses),PublicIpDnsHostnameTypeSpecification:cdk().stringToCloudFormation(properties.publicIpDnsHostnameTypeSpecification),SecondaryPrivateIpAddressCount:cdk().numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SourceDestCheck:cdk().booleanToCloudFormation(properties.sourceDestCheck),SubnetId:cdk().stringToCloudFormation(properties.subnetId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInterfacePropsFromCloudFormation(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("connectionTrackingSpecification","ConnectionTrackingSpecification",properties.ConnectionTrackingSpecification!=null?CfnNetworkInterfaceConnectionTrackingSpecificationPropertyFromCloudFormation(properties.ConnectionTrackingSpecification):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("enablePrimaryIpv6","EnablePrimaryIpv6",properties.EnablePrimaryIpv6!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnablePrimaryIpv6):void 0),ret.addPropertyResult("groupSet","GroupSet",properties.GroupSet!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.GroupSet):void 0),ret.addPropertyResult("interfaceType","InterfaceType",properties.InterfaceType!=null?cfn_parse().FromCloudFormation.getString(properties.InterfaceType):void 0),ret.addPropertyResult("ipv4PrefixCount","Ipv4PrefixCount",properties.Ipv4PrefixCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv4PrefixCount):void 0),ret.addPropertyResult("ipv4Prefixes","Ipv4Prefixes",properties.Ipv4Prefixes!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInterfaceIpv4PrefixSpecificationPropertyFromCloudFormation)(properties.Ipv4Prefixes):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInterfaceInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("ipv6PrefixCount","Ipv6PrefixCount",properties.Ipv6PrefixCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6PrefixCount):void 0),ret.addPropertyResult("ipv6Prefixes","Ipv6Prefixes",properties.Ipv6Prefixes!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInterfaceIpv6PrefixSpecificationPropertyFromCloudFormation)(properties.Ipv6Prefixes):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse().FromCloudFormation.getArray(CfnNetworkInterfacePrivateIpAddressSpecificationPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("publicIpDnsHostnameTypeSpecification","PublicIpDnsHostnameTypeSpecification",properties.PublicIpDnsHostnameTypeSpecification!=null?cfn_parse().FromCloudFormation.getString(properties.PublicIpDnsHostnameTypeSpecification):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("sourceDestCheck","SourceDestCheck",properties.SourceDestCheck!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SourceDestCheck):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkInterfaceAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInterfaceAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInterfaceAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInterfaceAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnNetworkInterfaceAttachment(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 isCfnNetworkInterfaceAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnNetworkInterfaceAttachment.CFN_RESOURCE_TYPE_NAME}_deleteOnTermination;_deviceIndex;_enaQueueCount;_enaSrdSpecification;_instanceId;_networkInterfaceId;cfnPropertyNames={deleteOnTermination:"DeleteOnTermination",deviceIndex:"DeviceIndex",enaQueueCount:"EnaQueueCount",enaSrdSpecification:"EnaSrdSpecification",instanceId:"InstanceId",networkInterfaceId:"NetworkInterfaceId"};constructor(scope,id,props){super(scope,id,{type:CfnNetworkInterfaceAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnNetworkInterfaceAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInterfaceAttachment),error}cdk().requireProperty(props,"deviceIndex",this),cdk().requireProperty(props,"instanceId",this),cdk().requireProperty(props,"networkInterfaceId",this),this._deleteOnTermination=props.deleteOnTermination,this._deviceIndex=props.deviceIndex,this._enaQueueCount=props.enaQueueCount,this._enaSrdSpecification=props.enaSrdSpecification,this._instanceId=props.instanceId,this._networkInterfaceId=props.networkInterfaceId}get networkInterfaceAttachmentRef(){return{attachmentId:this.ref}}get deleteOnTermination(){return this._deleteOnTermination}set deleteOnTermination(value){cdk().traceProperty(this.node,"DeleteOnTermination"),this._deleteOnTermination=value}get deviceIndex(){return this._deviceIndex}set deviceIndex(value){cdk().traceProperty(this.node,"DeviceIndex"),this._deviceIndex=value}get enaQueueCount(){return this._enaQueueCount}set enaQueueCount(value){cdk().traceProperty(this.node,"EnaQueueCount"),this._enaQueueCount=value}get enaSrdSpecification(){return this._enaSrdSpecification}set enaSrdSpecification(value){cdk().traceProperty(this.node,"EnaSrdSpecification"),this._enaSrdSpecification=value}get instanceId(){return this._instanceId}set instanceId(value){cdk().traceProperty(this.node,"InstanceId"),this._instanceId=value}get networkInterfaceId(){return this._networkInterfaceId}set networkInterfaceId(value){cdk().traceProperty(this.node,"NetworkInterfaceId"),this._networkInterfaceId=value}get attrAttachmentId(){return cdk().Token.asString(this.getAtt("AttachmentId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{deleteOnTermination:this._deleteOnTermination,deviceIndex:this._deviceIndex,enaQueueCount:this._enaQueueCount,enaSrdSpecification:this._enaSrdSpecification,instanceId:this._instanceId,networkInterfaceId:this._networkInterfaceId}}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",CfnNetworkInterfaceAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnNetworkInterfaceAttachmentPropsToCloudFormation(props)}}exports.CfnNetworkInterfaceAttachment=CfnNetworkInterfaceAttachment;function CfnNetworkInterfaceAttachmentEnaSrdUdpSpecificationPropertyValidator(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("enaSrdUdpEnabled",cdk().validateBoolean)(properties.enaSrdUdpEnabled)),errors.wrap('supplied properties not correct for "EnaSrdUdpSpecificationProperty"')}function convertCfnNetworkInterfaceAttachmentEnaSrdUdpSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInterfaceAttachmentEnaSrdUdpSpecificationPropertyValidator(properties).assertSuccess(),{EnaSrdUdpEnabled:cdk().booleanToCloudFormation(properties.enaSrdUdpEnabled)}):properties}function CfnNetworkInterfaceAttachmentEnaSrdUdpSpecificationPropertyFromCloudFormation(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("enaSrdUdpEnabled","EnaSrdUdpEnabled",properties.EnaSrdUdpEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnaSrdUdpEnabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterfaceAttachmentEnaSrdSpecificationPropertyValidator(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("enaSrdEnabled",cdk().validateBoolean)(properties.enaSrdEnabled)),errors.collect(cdk().propertyValidator("enaSrdUdpSpecification",CfnNetworkInterfaceAttachmentEnaSrdUdpSpecificationPropertyValidator)(properties.enaSrdUdpSpecification)),errors.wrap('supplied properties not correct for "EnaSrdSpecificationProperty"')}function convertCfnNetworkInterfaceAttachmentEnaSrdSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInterfaceAttachmentEnaSrdSpecificationPropertyValidator(properties).assertSuccess(),{EnaSrdEnabled:cdk().booleanToCloudFormation(properties.enaSrdEnabled),EnaSrdUdpSpecification:convertCfnNetworkInterfaceAttachmentEnaSrdUdpSpecificationPropertyToCloudFormation(properties.enaSrdUdpSpecification)}):properties}function CfnNetworkInterfaceAttachmentEnaSrdSpecificationPropertyFromCloudFormation(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("enaSrdEnabled","EnaSrdEnabled",properties.EnaSrdEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnaSrdEnabled):void 0),ret.addPropertyResult("enaSrdUdpSpecification","EnaSrdUdpSpecification",properties.EnaSrdUdpSpecification!=null?CfnNetworkInterfaceAttachmentEnaSrdUdpSpecificationPropertyFromCloudFormation(properties.EnaSrdUdpSpecification):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterfaceAttachmentPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("deviceIndex",cdk().requiredValidator)(properties.deviceIndex)),errors.collect(cdk().propertyValidator("deviceIndex",cdk().validateString)(properties.deviceIndex)),errors.collect(cdk().propertyValidator("enaQueueCount",cdk().validateNumber)(properties.enaQueueCount)),errors.collect(cdk().propertyValidator("enaSrdSpecification",CfnNetworkInterfaceAttachmentEnaSrdSpecificationPropertyValidator)(properties.enaSrdSpecification)),errors.collect(cdk().propertyValidator("instanceId",cdk().requiredValidator)(properties.instanceId)),errors.collect(cdk().propertyValidator("instanceId",cdk().validateString)(properties.instanceId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.wrap('supplied properties not correct for "CfnNetworkInterfaceAttachmentProps"')}function convertCfnNetworkInterfaceAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInterfaceAttachmentPropsValidator(properties).assertSuccess(),{DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),DeviceIndex:cdk().stringToCloudFormation(properties.deviceIndex),EnaQueueCount:cdk().numberToCloudFormation(properties.enaQueueCount),EnaSrdSpecification:convertCfnNetworkInterfaceAttachmentEnaSrdSpecificationPropertyToCloudFormation(properties.enaSrdSpecification),InstanceId:cdk().stringToCloudFormation(properties.instanceId),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId)}):properties}function CfnNetworkInterfaceAttachmentPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("deviceIndex","DeviceIndex",properties.DeviceIndex!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceIndex):void 0),ret.addPropertyResult("enaQueueCount","EnaQueueCount",properties.EnaQueueCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.EnaQueueCount):void 0),ret.addPropertyResult("enaSrdSpecification","EnaSrdSpecification",properties.EnaSrdSpecification!=null?CfnNetworkInterfaceAttachmentEnaSrdSpecificationPropertyFromCloudFormation(properties.EnaSrdSpecification):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkInterfacePermission extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInterfacePermission",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInterfacePermission";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInterfacePermissionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnNetworkInterfacePermission(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 isCfnNetworkInterfacePermission(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnNetworkInterfacePermission.CFN_RESOURCE_TYPE_NAME}_awsAccountId;_networkInterfaceId;_permission;cfnPropertyNames={awsAccountId:"AwsAccountId",networkInterfaceId:"NetworkInterfaceId",permission:"Permission"};constructor(scope,id,props){super(scope,id,{type:CfnNetworkInterfacePermission.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnNetworkInterfacePermissionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInterfacePermission),error}cdk().requireProperty(props,"awsAccountId",this),cdk().requireProperty(props,"networkInterfaceId",this),cdk().requireProperty(props,"permission",this),this._awsAccountId=props.awsAccountId,this._networkInterfaceId=props.networkInterfaceId,this._permission=props.permission}get networkInterfacePermissionRef(){return{networkInterfacePermissionId:this.ref}}get awsAccountId(){return this._awsAccountId}set awsAccountId(value){cdk().traceProperty(this.node,"AwsAccountId"),this._awsAccountId=value}get networkInterfaceId(){return this._networkInterfaceId}set networkInterfaceId(value){cdk().traceProperty(this.node,"NetworkInterfaceId"),this._networkInterfaceId=value}get permission(){return this._permission}set permission(value){cdk().traceProperty(this.node,"Permission"),this._permission=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{awsAccountId:this._awsAccountId,networkInterfaceId:this._networkInterfaceId,permission:this._permission}}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",CfnNetworkInterfacePermission.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnNetworkInterfacePermissionPropsToCloudFormation(props)}}exports.CfnNetworkInterfacePermission=CfnNetworkInterfacePermission;function CfnNetworkInterfacePermissionPropsValidator(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("awsAccountId",cdk().requiredValidator)(properties.awsAccountId)),errors.collect(cdk().propertyValidator("awsAccountId",cdk().validateString)(properties.awsAccountId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("permission",cdk().requiredValidator)(properties.permission)),errors.collect(cdk().propertyValidator("permission",cdk().validateString)(properties.permission)),errors.wrap('supplied properties not correct for "CfnNetworkInterfacePermissionProps"')}function convertCfnNetworkInterfacePermissionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkInterfacePermissionPropsValidator(properties).assertSuccess(),{AwsAccountId:cdk().stringToCloudFormation(properties.awsAccountId),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),Permission:cdk().stringToCloudFormation(properties.permission)}):properties}function CfnNetworkInterfacePermissionPropsFromCloudFormation(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("awsAccountId","AwsAccountId",properties.AwsAccountId!=null?cfn_parse().FromCloudFormation.getString(properties.AwsAccountId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("permission","Permission",properties.Permission!=null?cfn_parse().FromCloudFormation.getString(properties.Permission):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkPerformanceMetricSubscription extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkPerformanceMetricSubscription",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkPerformanceMetricSubscription";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkPerformanceMetricSubscriptionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnNetworkPerformanceMetricSubscription(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 isCfnNetworkPerformanceMetricSubscription(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnNetworkPerformanceMetricSubscription.CFN_RESOURCE_TYPE_NAME}_destination;_metric;_source;_statistic;cfnPropertyNames={destination:"Destination",metric:"Metric",source:"Source",statistic:"Statistic"};constructor(scope,id,props){super(scope,id,{type:CfnNetworkPerformanceMetricSubscription.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnNetworkPerformanceMetricSubscriptionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkPerformanceMetricSubscription),error}cdk().requireProperty(props,"destination",this),cdk().requireProperty(props,"metric",this),cdk().requireProperty(props,"source",this),cdk().requireProperty(props,"statistic",this),this._destination=props.destination,this._metric=props.metric,this._source=props.source,this._statistic=props.statistic}get networkPerformanceMetricSubscriptionRef(){return{source:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),destination:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),metric:cdk().Fn.select(2,cdk().Fn.split("|",this.ref)),statistic:cdk().Fn.select(3,cdk().Fn.split("|",this.ref))}}get destination(){return this._destination}set destination(value){cdk().traceProperty(this.node,"Destination"),this._destination=value}get metric(){return this._metric}set metric(value){cdk().traceProperty(this.node,"Metric"),this._metric=value}get source(){return this._source}set source(value){cdk().traceProperty(this.node,"Source"),this._source=value}get statistic(){return this._statistic}set statistic(value){cdk().traceProperty(this.node,"Statistic"),this._statistic=value}get cfnProperties(){return{destination:this._destination,metric:this._metric,source:this._source,statistic:this._statistic}}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",CfnNetworkPerformanceMetricSubscription.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnNetworkPerformanceMetricSubscriptionPropsToCloudFormation(props)}}exports.CfnNetworkPerformanceMetricSubscription=CfnNetworkPerformanceMetricSubscription;function CfnNetworkPerformanceMetricSubscriptionPropsValidator(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("destination",cdk().requiredValidator)(properties.destination)),errors.collect(cdk().propertyValidator("destination",cdk().validateString)(properties.destination)),errors.collect(cdk().propertyValidator("metric",cdk().requiredValidator)(properties.metric)),errors.collect(cdk().propertyValidator("metric",cdk().validateString)(properties.metric)),errors.collect(cdk().propertyValidator("source",cdk().requiredValidator)(properties.source)),errors.collect(cdk().propertyValidator("source",cdk().validateString)(properties.source)),errors.collect(cdk().propertyValidator("statistic",cdk().requiredValidator)(properties.statistic)),errors.collect(cdk().propertyValidator("statistic",cdk().validateString)(properties.statistic)),errors.wrap('supplied properties not correct for "CfnNetworkPerformanceMetricSubscriptionProps"')}function convertCfnNetworkPerformanceMetricSubscriptionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnNetworkPerformanceMetricSubscriptionPropsValidator(properties).assertSuccess(),{Destination:cdk().stringToCloudFormation(properties.destination),Metric:cdk().stringToCloudFormation(properties.metric),Source:cdk().stringToCloudFormation(properties.source),Statistic:cdk().stringToCloudFormation(properties.statistic)}):properties}function CfnNetworkPerformanceMetricSubscriptionPropsFromCloudFormation(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("destination","Destination",properties.Destination!=null?cfn_parse().FromCloudFormation.getString(properties.Destination):void 0),ret.addPropertyResult("metric","Metric",properties.Metric!=null?cfn_parse().FromCloudFormation.getString(properties.Metric):void 0),ret.addPropertyResult("source","Source",properties.Source!=null?cfn_parse().FromCloudFormation.getString(properties.Source):void 0),ret.addPropertyResult("statistic","Statistic",properties.Statistic!=null?cfn_parse().FromCloudFormation.getString(properties.Statistic):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPlacementGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnPlacementGroup",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::PlacementGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPlacementGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnPlacementGroup(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 isCfnPlacementGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnPlacementGroup.CFN_RESOURCE_TYPE_NAME}_partitionCount;_spreadLevel;_strategy;tags;_tagsRaw;cfnPropertyNames={partitionCount:"PartitionCount",spreadLevel:"SpreadLevel",strategy:"Strategy",tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnPlacementGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnPlacementGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPlacementGroup),error}this._partitionCount=props.partitionCount,this._spreadLevel=props.spreadLevel,this._strategy=props.strategy,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::PlacementGroup",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get placementGroupRef(){return{groupName:this.ref}}get partitionCount(){return this._partitionCount}set partitionCount(value){cdk().traceProperty(this.node,"PartitionCount"),this._partitionCount=value}get spreadLevel(){return this._spreadLevel}set spreadLevel(value){cdk().traceProperty(this.node,"SpreadLevel"),this._spreadLevel=value}get strategy(){return this._strategy}set strategy(value){cdk().traceProperty(this.node,"Strategy"),this._strategy=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrGroupName(){return cdk().Token.asString(this.getAtt("GroupName",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{partitionCount:this._partitionCount,spreadLevel:this._spreadLevel,strategy:this._strategy,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",CfnPlacementGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnPlacementGroupPropsToCloudFormation(props)}}exports.CfnPlacementGroup=CfnPlacementGroup;function CfnPlacementGroupPropsValidator(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("partitionCount",cdk().validateNumber)(properties.partitionCount)),errors.collect(cdk().propertyValidator("spreadLevel",cdk().validateString)(properties.spreadLevel)),errors.collect(cdk().propertyValidator("strategy",cdk().validateString)(properties.strategy)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnPlacementGroupProps"')}function convertCfnPlacementGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPlacementGroupPropsValidator(properties).assertSuccess(),{PartitionCount:cdk().numberToCloudFormation(properties.partitionCount),SpreadLevel:cdk().stringToCloudFormation(properties.spreadLevel),Strategy:cdk().stringToCloudFormation(properties.strategy),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnPlacementGroupPropsFromCloudFormation(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("partitionCount","PartitionCount",properties.PartitionCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.PartitionCount):void 0),ret.addPropertyResult("spreadLevel","SpreadLevel",properties.SpreadLevel!=null?cfn_parse().FromCloudFormation.getString(properties.SpreadLevel):void 0),ret.addPropertyResult("strategy","Strategy",properties.Strategy!=null?cfn_parse().FromCloudFormation.getString(properties.Strategy):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 CfnPrefixList extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnPrefixList",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::PrefixList";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPrefixListPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnPrefixList(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 isCfnPrefixList(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnPrefixList.CFN_RESOURCE_TYPE_NAME}static fromPrefixListArn(scope,id,arn){class Import extends cdk().Resource{prefixListRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:prefix-list/${PrefixListId}").parse(arn2);this.prefixListRef={prefixListId:variables.PrefixListId,prefixListArn:arn2}}}return new Import(scope,id,arn)}static fromPrefixListId(scope,id,prefixListId){class Import extends cdk().Resource{prefixListRef;constructor(scope2,id2,prefixListId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:prefix-list/${PrefixListId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,PrefixListId:prefixListId2});super(scope2,id2,{environmentFromArn:arn}),this.prefixListRef={prefixListId:prefixListId2,prefixListArn:arn}}}return new Import(scope,id,prefixListId)}static arnForPrefixList(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IPrefixListRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForPrefixList),error}return resource.prefixListRef.prefixListArn}_addressFamily;_entries;_maxEntries;_prefixListName;tags;_tagsRaw;cfnPropertyNames={addressFamily:"AddressFamily",entries:"Entries",maxEntries:"MaxEntries",prefixListName:"PrefixListName",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnPrefixList.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnPrefixListProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPrefixList),error}cdk().requireProperty(props,"addressFamily",this),cdk().requireProperty(props,"prefixListName",this),this._addressFamily=props.addressFamily,this._entries=props.entries,this._maxEntries=props.maxEntries,this._prefixListName=props.prefixListName,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::PrefixList",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get prefixListRef(){return{prefixListId:this.ref,prefixListArn:this.attrArn}}get addressFamily(){return this._addressFamily}set addressFamily(value){cdk().traceProperty(this.node,"AddressFamily"),this._addressFamily=value}get entries(){return this._entries}set entries(value){cdk().traceProperty(this.node,"Entries"),this._entries=value}get maxEntries(){return this._maxEntries}set maxEntries(value){cdk().traceProperty(this.node,"MaxEntries"),this._maxEntries=value}get prefixListName(){return this._prefixListName}set prefixListName(value){cdk().traceProperty(this.node,"PrefixListName"),this._prefixListName=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrOwnerId(){return cdk().Token.asString(this.getAtt("OwnerId",cdk().ResolutionTypeHint.STRING))}get attrPrefixListId(){return cdk().Token.asString(this.getAtt("PrefixListId",cdk().ResolutionTypeHint.STRING))}get attrVersion(){return cdk().Token.asNumber(this.getAtt("Version",cdk().ResolutionTypeHint.NUMBER))}get cfnProperties(){return{addressFamily:this._addressFamily,entries:this._entries,maxEntries:this._maxEntries,prefixListName:this._prefixListName,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",CfnPrefixList.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnPrefixListPropsToCloudFormation(props)}}exports.CfnPrefixList=CfnPrefixList;function CfnPrefixListEntryPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidr",cdk().requiredValidator)(properties.cidr)),errors.collect(cdk().propertyValidator("cidr",cdk().validateString)(properties.cidr)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.wrap('supplied properties not correct for "EntryProperty"')}function convertCfnPrefixListEntryPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrefixListEntryPropertyValidator(properties).assertSuccess(),{Cidr:cdk().stringToCloudFormation(properties.cidr),Description:cdk().stringToCloudFormation(properties.description)}):properties}function CfnPrefixListEntryPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnPrefixListPropsValidator(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("addressFamily",cdk().requiredValidator)(properties.addressFamily)),errors.collect(cdk().propertyValidator("addressFamily",cdk().validateString)(properties.addressFamily)),errors.collect(cdk().propertyValidator("entries",cdk().listValidator(CfnPrefixListEntryPropertyValidator))(properties.entries)),errors.collect(cdk().propertyValidator("maxEntries",cdk().validateNumber)(properties.maxEntries)),errors.collect(cdk().propertyValidator("prefixListName",cdk().requiredValidator)(properties.prefixListName)),errors.collect(cdk().propertyValidator("prefixListName",cdk().validateString)(properties.prefixListName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnPrefixListProps"')}function convertCfnPrefixListPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnPrefixListPropsValidator(properties).assertSuccess(),{AddressFamily:cdk().stringToCloudFormation(properties.addressFamily),Entries:cdk().listMapper(convertCfnPrefixListEntryPropertyToCloudFormation)(properties.entries),MaxEntries:cdk().numberToCloudFormation(properties.maxEntries),PrefixListName:cdk().stringToCloudFormation(properties.prefixListName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnPrefixListPropsFromCloudFormation(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("addressFamily","AddressFamily",properties.AddressFamily!=null?cfn_parse().FromCloudFormation.getString(properties.AddressFamily):void 0),ret.addPropertyResult("entries","Entries",properties.Entries!=null?cfn_parse().FromCloudFormation.getArray(CfnPrefixListEntryPropertyFromCloudFormation)(properties.Entries):void 0),ret.addPropertyResult("maxEntries","MaxEntries",properties.MaxEntries!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxEntries):void 0),ret.addPropertyResult("prefixListName","PrefixListName",properties.PrefixListName!=null?cfn_parse().FromCloudFormation.getString(properties.PrefixListName):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 CfnRoute extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnRoute",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::Route";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRoutePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnRoute(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 isCfnRoute(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRoute.CFN_RESOURCE_TYPE_NAME}_carrierGatewayId;_coreNetworkArn;_destinationCidrBlock;_destinationIpv6CidrBlock;_destinationPrefixListId;_egressOnlyInternetGatewayId;_gatewayId;_instanceId;_localGatewayId;_natGatewayId;_networkInterfaceId;_routeTableId;_transitGatewayId;_vpcEndpointId;_vpcPeeringConnectionId;cfnPropertyNames={carrierGatewayId:"CarrierGatewayId",coreNetworkArn:"CoreNetworkArn",destinationCidrBlock:"DestinationCidrBlock",destinationIpv6CidrBlock:"DestinationIpv6CidrBlock",destinationPrefixListId:"DestinationPrefixListId",egressOnlyInternetGatewayId:"EgressOnlyInternetGatewayId",gatewayId:"GatewayId",instanceId:"InstanceId",localGatewayId:"LocalGatewayId",natGatewayId:"NatGatewayId",networkInterfaceId:"NetworkInterfaceId",routeTableId:"RouteTableId",transitGatewayId:"TransitGatewayId",vpcEndpointId:"VpcEndpointId",vpcPeeringConnectionId:"VpcPeeringConnectionId"};constructor(scope,id,props){super(scope,id,{type:CfnRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRoute),error}cdk().requireProperty(props,"routeTableId",this),this._carrierGatewayId=cdk().getRefProperty(props.carrierGatewayId?.carrierGatewayRef,"carrierGatewayId")??cdk().ensureStringOrUndefined(props.carrierGatewayId,"carrierGatewayId","ec2.ICarrierGatewayRef | string"),this._coreNetworkArn=props.coreNetworkArn,this._destinationCidrBlock=props.destinationCidrBlock,this._destinationIpv6CidrBlock=props.destinationIpv6CidrBlock,this._destinationPrefixListId=props.destinationPrefixListId,this._egressOnlyInternetGatewayId=cdk().getRefProperty(props.egressOnlyInternetGatewayId?.egressOnlyInternetGatewayRef,"egressOnlyInternetGatewayId")??cdk().ensureStringOrUndefined(props.egressOnlyInternetGatewayId,"egressOnlyInternetGatewayId","ec2.IEgressOnlyInternetGatewayRef | string"),this._gatewayId=cdk().getRefProperty(props.gatewayId?.internetGatewayRef,"internetGatewayId")??cdk().getRefProperty(props.gatewayId?.vpnGatewayRef,"vpnGatewayId")??cdk().ensureStringOrUndefined(props.gatewayId,"gatewayId","ec2.IInternetGatewayRef | ec2.IVPNGatewayRef | string"),this._instanceId=cdk().getRefProperty(props.instanceId?.instanceRef,"instanceId")??cdk().ensureStringOrUndefined(props.instanceId,"instanceId","ec2.IInstanceRef | string"),this._localGatewayId=props.localGatewayId,this._natGatewayId=cdk().getRefProperty(props.natGatewayId?.natGatewayRef,"natGatewayId")??cdk().ensureStringOrUndefined(props.natGatewayId,"natGatewayId","ec2.INatGatewayRef | string"),this._networkInterfaceId=props.networkInterfaceId,this._routeTableId=cdk().getRefProperty(props.routeTableId?.routeTableRef,"routeTableId")??cdk().ensureStringOrUndefined(props.routeTableId,"routeTableId","ec2.IRouteTableRef | string"),this._transitGatewayId=cdk().getRefProperty(props.transitGatewayId?.transitGatewayRef,"transitGatewayId")??cdk().ensureStringOrUndefined(props.transitGatewayId,"transitGatewayId","ec2.ITransitGatewayRef | string"),this._vpcEndpointId=props.vpcEndpointId,this._vpcPeeringConnectionId=cdk().getRefProperty(props.vpcPeeringConnectionId?.vpcPeeringConnectionRef,"vpcPeeringConnectionId")??cdk().ensureStringOrUndefined(props.vpcPeeringConnectionId,"vpcPeeringConnectionId","ec2.IVPCPeeringConnectionRef | string")}get routeRef(){return{routeTableId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),cidrBlock:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get carrierGatewayId(){return this._carrierGatewayId}set carrierGatewayId(value){cdk().traceProperty(this.node,"CarrierGatewayId"),this._carrierGatewayId=value}get coreNetworkArn(){return this._coreNetworkArn}set coreNetworkArn(value){cdk().traceProperty(this.node,"CoreNetworkArn"),this._coreNetworkArn=value}get destinationCidrBlock(){return this._destinationCidrBlock}set destinationCidrBlock(value){cdk().traceProperty(this.node,"DestinationCidrBlock"),this._destinationCidrBlock=value}get destinationIpv6CidrBlock(){return this._destinationIpv6CidrBlock}set destinationIpv6CidrBlock(value){cdk().traceProperty(this.node,"DestinationIpv6CidrBlock"),this._destinationIpv6CidrBlock=value}get destinationPrefixListId(){return this._destinationPrefixListId}set destinationPrefixListId(value){cdk().traceProperty(this.node,"DestinationPrefixListId"),this._destinationPrefixListId=value}get egressOnlyInternetGatewayId(){return this._egressOnlyInternetGatewayId}set egressOnlyInternetGatewayId(value){cdk().traceProperty(this.node,"EgressOnlyInternetGatewayId"),this._egressOnlyInternetGatewayId=value}get gatewayId(){return this._gatewayId}set gatewayId(value){cdk().traceProperty(this.node,"GatewayId"),this._gatewayId=value}get instanceId(){return this._instanceId}set instanceId(value){cdk().traceProperty(this.node,"InstanceId"),this._instanceId=value}get localGatewayId(){return this._localGatewayId}set localGatewayId(value){cdk().traceProperty(this.node,"LocalGatewayId"),this._localGatewayId=value}get natGatewayId(){return this._natGatewayId}set natGatewayId(value){cdk().traceProperty(this.node,"NatGatewayId"),this._natGatewayId=value}get networkInterfaceId(){return this._networkInterfaceId}set networkInterfaceId(value){cdk().traceProperty(this.node,"NetworkInterfaceId"),this._networkInterfaceId=value}get routeTableId(){return this._routeTableId}set routeTableId(value){cdk().traceProperty(this.node,"RouteTableId"),this._routeTableId=value}get transitGatewayId(){return this._transitGatewayId}set transitGatewayId(value){cdk().traceProperty(this.node,"TransitGatewayId"),this._transitGatewayId=value}get vpcEndpointId(){return this._vpcEndpointId}set vpcEndpointId(value){cdk().traceProperty(this.node,"VpcEndpointId"),this._vpcEndpointId=value}get vpcPeeringConnectionId(){return this._vpcPeeringConnectionId}set vpcPeeringConnectionId(value){cdk().traceProperty(this.node,"VpcPeeringConnectionId"),this._vpcPeeringConnectionId=value}get attrCidrBlock(){return cdk().Token.asString(this.getAtt("CidrBlock",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{carrierGatewayId:this._carrierGatewayId,coreNetworkArn:this._coreNetworkArn,destinationCidrBlock:this._destinationCidrBlock,destinationIpv6CidrBlock:this._destinationIpv6CidrBlock,destinationPrefixListId:this._destinationPrefixListId,egressOnlyInternetGatewayId:this._egressOnlyInternetGatewayId,gatewayId:this._gatewayId,instanceId:this._instanceId,localGatewayId:this._localGatewayId,natGatewayId:this._natGatewayId,networkInterfaceId:this._networkInterfaceId,routeTableId:this._routeTableId,transitGatewayId:this._transitGatewayId,vpcEndpointId:this._vpcEndpointId,vpcPeeringConnectionId:this._vpcPeeringConnectionId}}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",CfnRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRoutePropsToCloudFormation(props)}}exports.CfnRoute=CfnRoute;function CfnRoutePropsValidator(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("carrierGatewayId",cdk().validateString)(properties.carrierGatewayId)),errors.collect(cdk().propertyValidator("coreNetworkArn",cdk().validateString)(properties.coreNetworkArn)),errors.collect(cdk().propertyValidator("destinationCidrBlock",cdk().validateString)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("destinationIpv6CidrBlock",cdk().validateString)(properties.destinationIpv6CidrBlock)),errors.collect(cdk().propertyValidator("destinationPrefixListId",cdk().validateString)(properties.destinationPrefixListId)),errors.collect(cdk().propertyValidator("egressOnlyInternetGatewayId",cdk().validateString)(properties.egressOnlyInternetGatewayId)),errors.collect(cdk().propertyValidator("gatewayId",cdk().validateString)(properties.gatewayId)),errors.collect(cdk().propertyValidator("instanceId",cdk().validateString)(properties.instanceId)),errors.collect(cdk().propertyValidator("localGatewayId",cdk().validateString)(properties.localGatewayId)),errors.collect(cdk().propertyValidator("natGatewayId",cdk().validateString)(properties.natGatewayId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("routeTableId",cdk().requiredValidator)(properties.routeTableId)),errors.collect(cdk().propertyValidator("routeTableId",cdk().validateString)(properties.routeTableId)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().validateString)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("vpcEndpointId",cdk().validateString)(properties.vpcEndpointId)),errors.collect(cdk().propertyValidator("vpcPeeringConnectionId",cdk().validateString)(properties.vpcPeeringConnectionId)),errors.wrap('supplied properties not correct for "CfnRouteProps"')}function convertCfnRoutePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRoutePropsValidator(properties).assertSuccess(),{CarrierGatewayId:cdk().stringToCloudFormation(properties.carrierGatewayId),CoreNetworkArn:cdk().stringToCloudFormation(properties.coreNetworkArn),DestinationCidrBlock:cdk().stringToCloudFormation(properties.destinationCidrBlock),DestinationIpv6CidrBlock:cdk().stringToCloudFormation(properties.destinationIpv6CidrBlock),DestinationPrefixListId:cdk().stringToCloudFormation(properties.destinationPrefixListId),EgressOnlyInternetGatewayId:cdk().stringToCloudFormation(properties.egressOnlyInternetGatewayId),GatewayId:cdk().stringToCloudFormation(properties.gatewayId),InstanceId:cdk().stringToCloudFormation(properties.instanceId),LocalGatewayId:cdk().stringToCloudFormation(properties.localGatewayId),NatGatewayId:cdk().stringToCloudFormation(properties.natGatewayId),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),RouteTableId:cdk().stringToCloudFormation(properties.routeTableId),TransitGatewayId:cdk().stringToCloudFormation(properties.transitGatewayId),VpcEndpointId:cdk().stringToCloudFormation(properties.vpcEndpointId),VpcPeeringConnectionId:cdk().stringToCloudFormation(properties.vpcPeeringConnectionId)}):properties}function CfnRoutePropsFromCloudFormation(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("carrierGatewayId","CarrierGatewayId",properties.CarrierGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.CarrierGatewayId):void 0),ret.addPropertyResult("coreNetworkArn","CoreNetworkArn",properties.CoreNetworkArn!=null?cfn_parse().FromCloudFormation.getString(properties.CoreNetworkArn):void 0),ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",properties.DestinationCidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationCidrBlock):void 0),ret.addPropertyResult("destinationIpv6CidrBlock","DestinationIpv6CidrBlock",properties.DestinationIpv6CidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationIpv6CidrBlock):void 0),ret.addPropertyResult("destinationPrefixListId","DestinationPrefixListId",properties.DestinationPrefixListId!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationPrefixListId):void 0),ret.addPropertyResult("egressOnlyInternetGatewayId","EgressOnlyInternetGatewayId",properties.EgressOnlyInternetGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.EgressOnlyInternetGatewayId):void 0),ret.addPropertyResult("gatewayId","GatewayId",properties.GatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.GatewayId):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("localGatewayId","LocalGatewayId",properties.LocalGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.LocalGatewayId):void 0),ret.addPropertyResult("natGatewayId","NatGatewayId",properties.NatGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.NatGatewayId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("routeTableId","RouteTableId",properties.RouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.RouteTableId):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("vpcEndpointId","VpcEndpointId",properties.VpcEndpointId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcEndpointId):void 0),ret.addPropertyResult("vpcPeeringConnectionId","VpcPeeringConnectionId",properties.VpcPeeringConnectionId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcPeeringConnectionId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRouteTable extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnRouteTable",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::RouteTable";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRouteTablePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnRouteTable(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 isCfnRouteTable(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRouteTable.CFN_RESOURCE_TYPE_NAME}static fromRouteTableId(scope,id,routeTableId){class Import extends cdk().Resource{routeTableRef;constructor(scope2,id2,routeTableId2){super(scope2,id2),this.routeTableRef={routeTableId:routeTableId2}}}return new Import(scope,id,routeTableId)}static arnForRouteTable(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IRouteTableRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRouteTable),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:route-table/${RouteTableId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,RouteTableId:resource.routeTableRef.routeTableId})}tags;_tagsRaw;_vpcId;cfnPropertyNames={tags:"Tags",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnRouteTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnRouteTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRouteTable),error}cdk().requireProperty(props,"vpcId",this),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::RouteTable",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get routeTableRef(){return{routeTableId:this.ref}}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrRouteTableId(){return cdk().Token.asString(this.getAtt("RouteTableId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.tags.renderTags(),vpcId:this._vpcId}}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",CfnRouteTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRouteTablePropsToCloudFormation(props)}}exports.CfnRouteTable=CfnRouteTable;function CfnRouteTablePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnRouteTableProps"')}function convertCfnRouteTablePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouteTablePropsValidator(properties).assertSuccess(),{Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnRouteTablePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnSecurityGroup",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::SecurityGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSecurityGroup(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 isCfnSecurityGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSecurityGroup.CFN_RESOURCE_TYPE_NAME}static fromSecurityGroupId(scope,id,securityGroupId){class Import extends cdk().Resource{securityGroupRef;constructor(scope2,id2,securityGroupId2){super(scope2,id2),this.securityGroupRef={securityGroupId:securityGroupId2}}}return new Import(scope,id,securityGroupId)}static arnForSecurityGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ISecurityGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForSecurityGroup),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:security-group/${SecurityGroupId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,SecurityGroupId:resource.securityGroupRef.securityGroupId})}_groupDescription;_groupName;_securityGroupEgress;_securityGroupIngress;tags;_tagsRaw;_vpcId;cfnPropertyNames={groupDescription:"GroupDescription",groupName:"GroupName",securityGroupEgress:"SecurityGroupEgress",securityGroupIngress:"SecurityGroupIngress",tags:"Tags",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnSecurityGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnSecurityGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityGroup),error}cdk().requireProperty(props,"groupDescription",this),this._groupDescription=props.groupDescription,this._groupName=props.groupName,this._securityGroupEgress=props.securityGroupEgress,this._securityGroupIngress=props.securityGroupIngress,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::SecurityGroup",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get securityGroupRef(){return{securityGroupId:this.ref}}get groupDescription(){return this._groupDescription}set groupDescription(value){cdk().traceProperty(this.node,"GroupDescription"),this._groupDescription=value}get groupName(){return this._groupName}set groupName(value){cdk().traceProperty(this.node,"GroupName"),this._groupName=value}get securityGroupEgress(){return this._securityGroupEgress}set securityGroupEgress(value){cdk().traceProperty(this.node,"SecurityGroupEgress"),this._securityGroupEgress=value}get securityGroupIngress(){return this._securityGroupIngress}set securityGroupIngress(value){cdk().traceProperty(this.node,"SecurityGroupIngress"),this._securityGroupIngress=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrGroupId(){return cdk().Token.asString(this.getAtt("GroupId",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrVpcId(){return cdk().Token.asString(this.getAtt("VpcId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{groupDescription:this._groupDescription,groupName:this._groupName,securityGroupEgress:this._securityGroupEgress,securityGroupIngress:this._securityGroupIngress,tags:this.tags.renderTags(),vpcId:this._vpcId}}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",CfnSecurityGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSecurityGroupPropsToCloudFormation(props)}}exports.CfnSecurityGroup=CfnSecurityGroup;function CfnSecurityGroupEgressPropertyValidator(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("cidrIp",cdk().validateString)(properties.cidrIp)),errors.collect(cdk().propertyValidator("cidrIpv6",cdk().validateString)(properties.cidrIpv6)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("destinationPrefixListId",cdk().validateString)(properties.destinationPrefixListId)),errors.collect(cdk().propertyValidator("destinationSecurityGroupId",cdk().validateString)(properties.destinationSecurityGroupId)),errors.collect(cdk().propertyValidator("fromPort",cdk().validateNumber)(properties.fromPort)),errors.collect(cdk().propertyValidator("ipProtocol",cdk().requiredValidator)(properties.ipProtocol)),errors.collect(cdk().propertyValidator("ipProtocol",cdk().validateString)(properties.ipProtocol)),errors.collect(cdk().propertyValidator("toPort",cdk().validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "EgressProperty"')}function convertCfnSecurityGroupEgressPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityGroupEgressPropertyValidator(properties).assertSuccess(),{CidrIp:cdk().stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk().stringToCloudFormation(properties.cidrIpv6),Description:cdk().stringToCloudFormation(properties.description),DestinationPrefixListId:cdk().stringToCloudFormation(properties.destinationPrefixListId),DestinationSecurityGroupId:cdk().stringToCloudFormation(properties.destinationSecurityGroupId),FromPort:cdk().numberToCloudFormation(properties.fromPort),IpProtocol:cdk().stringToCloudFormation(properties.ipProtocol),ToPort:cdk().numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupEgressPropertyFromCloudFormation(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("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse().FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse().FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destinationPrefixListId","DestinationPrefixListId",properties.DestinationPrefixListId!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationPrefixListId):void 0),ret.addPropertyResult("destinationSecurityGroupId","DestinationSecurityGroupId",properties.DestinationSecurityGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationSecurityGroupId):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("ipProtocol","IpProtocol",properties.IpProtocol!=null?cfn_parse().FromCloudFormation.getString(properties.IpProtocol):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityGroupIngressPropertyValidator(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("cidrIp",cdk().validateString)(properties.cidrIp)),errors.collect(cdk().propertyValidator("cidrIpv6",cdk().validateString)(properties.cidrIpv6)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("fromPort",cdk().validateNumber)(properties.fromPort)),errors.collect(cdk().propertyValidator("ipProtocol",cdk().requiredValidator)(properties.ipProtocol)),errors.collect(cdk().propertyValidator("ipProtocol",cdk().validateString)(properties.ipProtocol)),errors.collect(cdk().propertyValidator("sourcePrefixListId",cdk().validateString)(properties.sourcePrefixListId)),errors.collect(cdk().propertyValidator("sourceSecurityGroupId",cdk().validateString)(properties.sourceSecurityGroupId)),errors.collect(cdk().propertyValidator("sourceSecurityGroupName",cdk().validateString)(properties.sourceSecurityGroupName)),errors.collect(cdk().propertyValidator("sourceSecurityGroupOwnerId",cdk().validateString)(properties.sourceSecurityGroupOwnerId)),errors.collect(cdk().propertyValidator("toPort",cdk().validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "IngressProperty"')}function convertCfnSecurityGroupIngressPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityGroupIngressPropertyValidator(properties).assertSuccess(),{CidrIp:cdk().stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk().stringToCloudFormation(properties.cidrIpv6),Description:cdk().stringToCloudFormation(properties.description),FromPort:cdk().numberToCloudFormation(properties.fromPort),IpProtocol:cdk().stringToCloudFormation(properties.ipProtocol),SourcePrefixListId:cdk().stringToCloudFormation(properties.sourcePrefixListId),SourceSecurityGroupId:cdk().stringToCloudFormation(properties.sourceSecurityGroupId),SourceSecurityGroupName:cdk().stringToCloudFormation(properties.sourceSecurityGroupName),SourceSecurityGroupOwnerId:cdk().stringToCloudFormation(properties.sourceSecurityGroupOwnerId),ToPort:cdk().numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupIngressPropertyFromCloudFormation(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("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse().FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse().FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("ipProtocol","IpProtocol",properties.IpProtocol!=null?cfn_parse().FromCloudFormation.getString(properties.IpProtocol):void 0),ret.addPropertyResult("sourcePrefixListId","SourcePrefixListId",properties.SourcePrefixListId!=null?cfn_parse().FromCloudFormation.getString(properties.SourcePrefixListId):void 0),ret.addPropertyResult("sourceSecurityGroupId","SourceSecurityGroupId",properties.SourceSecurityGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.SourceSecurityGroupId):void 0),ret.addPropertyResult("sourceSecurityGroupName","SourceSecurityGroupName",properties.SourceSecurityGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.SourceSecurityGroupName):void 0),ret.addPropertyResult("sourceSecurityGroupOwnerId","SourceSecurityGroupOwnerId",properties.SourceSecurityGroupOwnerId!=null?cfn_parse().FromCloudFormation.getString(properties.SourceSecurityGroupOwnerId):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityGroupPropsValidator(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("groupDescription",cdk().requiredValidator)(properties.groupDescription)),errors.collect(cdk().propertyValidator("groupDescription",cdk().validateString)(properties.groupDescription)),errors.collect(cdk().propertyValidator("groupName",cdk().validateString)(properties.groupName)),errors.collect(cdk().propertyValidator("securityGroupEgress",cdk().listValidator(CfnSecurityGroupEgressPropertyValidator))(properties.securityGroupEgress)),errors.collect(cdk().propertyValidator("securityGroupIngress",cdk().listValidator(CfnSecurityGroupIngressPropertyValidator))(properties.securityGroupIngress)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnSecurityGroupProps"')}function convertCfnSecurityGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityGroupPropsValidator(properties).assertSuccess(),{GroupDescription:cdk().stringToCloudFormation(properties.groupDescription),GroupName:cdk().stringToCloudFormation(properties.groupName),SecurityGroupEgress:cdk().listMapper(convertCfnSecurityGroupEgressPropertyToCloudFormation)(properties.securityGroupEgress),SecurityGroupIngress:cdk().listMapper(convertCfnSecurityGroupIngressPropertyToCloudFormation)(properties.securityGroupIngress),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnSecurityGroupPropsFromCloudFormation(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("groupDescription","GroupDescription",properties.GroupDescription!=null?cfn_parse().FromCloudFormation.getString(properties.GroupDescription):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse().FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("securityGroupEgress","SecurityGroupEgress",properties.SecurityGroupEgress!=null?cfn_parse().FromCloudFormation.getArray(CfnSecurityGroupEgressPropertyFromCloudFormation)(properties.SecurityGroupEgress):void 0),ret.addPropertyResult("securityGroupIngress","SecurityGroupIngress",properties.SecurityGroupIngress!=null?cfn_parse().FromCloudFormation.getArray(CfnSecurityGroupIngressPropertyFromCloudFormation)(properties.SecurityGroupIngress):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityGroupEgress extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnSecurityGroupEgress",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::SecurityGroupEgress";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityGroupEgressPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSecurityGroupEgress(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 isCfnSecurityGroupEgress(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSecurityGroupEgress.CFN_RESOURCE_TYPE_NAME}_cidrIp;_cidrIpv6;_description;_destinationPrefixListId;_destinationSecurityGroupId;_fromPort;_groupId;_ipProtocol;_toPort;cfnPropertyNames={cidrIp:"CidrIp",cidrIpv6:"CidrIpv6",description:"Description",destinationPrefixListId:"DestinationPrefixListId",destinationSecurityGroupId:"DestinationSecurityGroupId",fromPort:"FromPort",groupId:"GroupId",ipProtocol:"IpProtocol",toPort:"ToPort"};constructor(scope,id,props){super(scope,id,{type:CfnSecurityGroupEgress.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnSecurityGroupEgressProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityGroupEgress),error}cdk().requireProperty(props,"groupId",this),cdk().requireProperty(props,"ipProtocol",this),this._cidrIp=props.cidrIp,this._cidrIpv6=props.cidrIpv6,this._description=props.description,this._destinationPrefixListId=props.destinationPrefixListId,this._destinationSecurityGroupId=cdk().getRefProperty(props.destinationSecurityGroupId?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(props.destinationSecurityGroupId,"destinationSecurityGroupId","ec2.ISecurityGroupRef | string"),this._fromPort=props.fromPort,this._groupId=cdk().getRefProperty(props.groupId?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(props.groupId,"groupId","ec2.ISecurityGroupRef | string"),this._ipProtocol=props.ipProtocol,this._toPort=props.toPort}get securityGroupEgressRef(){return{securityGroupEgressId:this.ref}}get cidrIp(){return this._cidrIp}set cidrIp(value){cdk().traceProperty(this.node,"CidrIp"),this._cidrIp=value}get cidrIpv6(){return this._cidrIpv6}set cidrIpv6(value){cdk().traceProperty(this.node,"CidrIpv6"),this._cidrIpv6=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get destinationPrefixListId(){return this._destinationPrefixListId}set destinationPrefixListId(value){cdk().traceProperty(this.node,"DestinationPrefixListId"),this._destinationPrefixListId=value}get destinationSecurityGroupId(){return this._destinationSecurityGroupId}set destinationSecurityGroupId(value){cdk().traceProperty(this.node,"DestinationSecurityGroupId"),this._destinationSecurityGroupId=value}get fromPort(){return this._fromPort}set fromPort(value){cdk().traceProperty(this.node,"FromPort"),this._fromPort=value}get groupId(){return this._groupId}set groupId(value){cdk().traceProperty(this.node,"GroupId"),this._groupId=value}get ipProtocol(){return this._ipProtocol}set ipProtocol(value){cdk().traceProperty(this.node,"IpProtocol"),this._ipProtocol=value}get toPort(){return this._toPort}set toPort(value){cdk().traceProperty(this.node,"ToPort"),this._toPort=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{cidrIp:this._cidrIp,cidrIpv6:this._cidrIpv6,description:this._description,destinationPrefixListId:this._destinationPrefixListId,destinationSecurityGroupId:this._destinationSecurityGroupId,fromPort:this._fromPort,groupId:this._groupId,ipProtocol:this._ipProtocol,toPort:this._toPort}}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",CfnSecurityGroupEgress.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSecurityGroupEgressPropsToCloudFormation(props)}}exports.CfnSecurityGroupEgress=CfnSecurityGroupEgress;function CfnSecurityGroupEgressPropsValidator(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("cidrIp",cdk().validateString)(properties.cidrIp)),errors.collect(cdk().propertyValidator("cidrIpv6",cdk().validateString)(properties.cidrIpv6)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("destinationPrefixListId",cdk().validateString)(properties.destinationPrefixListId)),errors.collect(cdk().propertyValidator("destinationSecurityGroupId",cdk().validateString)(properties.destinationSecurityGroupId)),errors.collect(cdk().propertyValidator("fromPort",cdk().validateNumber)(properties.fromPort)),errors.collect(cdk().propertyValidator("groupId",cdk().requiredValidator)(properties.groupId)),errors.collect(cdk().propertyValidator("groupId",cdk().validateString)(properties.groupId)),errors.collect(cdk().propertyValidator("ipProtocol",cdk().requiredValidator)(properties.ipProtocol)),errors.collect(cdk().propertyValidator("ipProtocol",cdk().validateString)(properties.ipProtocol)),errors.collect(cdk().propertyValidator("toPort",cdk().validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "CfnSecurityGroupEgressProps"')}function convertCfnSecurityGroupEgressPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityGroupEgressPropsValidator(properties).assertSuccess(),{CidrIp:cdk().stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk().stringToCloudFormation(properties.cidrIpv6),Description:cdk().stringToCloudFormation(properties.description),DestinationPrefixListId:cdk().stringToCloudFormation(properties.destinationPrefixListId),DestinationSecurityGroupId:cdk().stringToCloudFormation(properties.destinationSecurityGroupId),FromPort:cdk().numberToCloudFormation(properties.fromPort),GroupId:cdk().stringToCloudFormation(properties.groupId),IpProtocol:cdk().stringToCloudFormation(properties.ipProtocol),ToPort:cdk().numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupEgressPropsFromCloudFormation(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("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse().FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse().FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destinationPrefixListId","DestinationPrefixListId",properties.DestinationPrefixListId!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationPrefixListId):void 0),ret.addPropertyResult("destinationSecurityGroupId","DestinationSecurityGroupId",properties.DestinationSecurityGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationSecurityGroupId):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("groupId","GroupId",properties.GroupId!=null?cfn_parse().FromCloudFormation.getString(properties.GroupId):void 0),ret.addPropertyResult("ipProtocol","IpProtocol",properties.IpProtocol!=null?cfn_parse().FromCloudFormation.getString(properties.IpProtocol):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityGroupIngress extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::SecurityGroupIngress";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityGroupIngressPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSecurityGroupIngress(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 isCfnSecurityGroupIngress(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME}_cidrIp;_cidrIpv6;_description;_fromPort;_groupId;_groupName;_ipProtocol;_sourcePrefixListId;_sourceSecurityGroupId;_sourceSecurityGroupName;_sourceSecurityGroupOwnerId;_toPort;cfnPropertyNames={cidrIp:"CidrIp",cidrIpv6:"CidrIpv6",description:"Description",fromPort:"FromPort",groupId:"GroupId",groupName:"GroupName",ipProtocol:"IpProtocol",sourcePrefixListId:"SourcePrefixListId",sourceSecurityGroupId:"SourceSecurityGroupId",sourceSecurityGroupName:"SourceSecurityGroupName",sourceSecurityGroupOwnerId:"SourceSecurityGroupOwnerId",toPort:"ToPort"};constructor(scope,id,props){super(scope,id,{type:CfnSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnSecurityGroupIngressProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityGroupIngress),error}cdk().requireProperty(props,"ipProtocol",this),this._cidrIp=props.cidrIp,this._cidrIpv6=props.cidrIpv6,this._description=props.description,this._fromPort=props.fromPort,this._groupId=cdk().getRefProperty(props.groupId?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(props.groupId,"groupId","ec2.ISecurityGroupRef | string"),this._groupName=cdk().getRefProperty(props.groupName?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(props.groupName,"groupName","ec2.ISecurityGroupRef | string"),this._ipProtocol=props.ipProtocol,this._sourcePrefixListId=cdk().getRefProperty(props.sourcePrefixListId?.prefixListRef,"prefixListId")??cdk().ensureStringOrUndefined(props.sourcePrefixListId,"sourcePrefixListId","ec2.IPrefixListRef | string"),this._sourceSecurityGroupId=cdk().getRefProperty(props.sourceSecurityGroupId?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(props.sourceSecurityGroupId,"sourceSecurityGroupId","ec2.ISecurityGroupRef | string"),this._sourceSecurityGroupName=props.sourceSecurityGroupName,this._sourceSecurityGroupOwnerId=props.sourceSecurityGroupOwnerId,this._toPort=props.toPort}get securityGroupIngressRef(){return{securityGroupIngressId:this.ref}}get cidrIp(){return this._cidrIp}set cidrIp(value){cdk().traceProperty(this.node,"CidrIp"),this._cidrIp=value}get cidrIpv6(){return this._cidrIpv6}set cidrIpv6(value){cdk().traceProperty(this.node,"CidrIpv6"),this._cidrIpv6=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get fromPort(){return this._fromPort}set fromPort(value){cdk().traceProperty(this.node,"FromPort"),this._fromPort=value}get groupId(){return this._groupId}set groupId(value){cdk().traceProperty(this.node,"GroupId"),this._groupId=value}get groupName(){return this._groupName}set groupName(value){cdk().traceProperty(this.node,"GroupName"),this._groupName=value}get ipProtocol(){return this._ipProtocol}set ipProtocol(value){cdk().traceProperty(this.node,"IpProtocol"),this._ipProtocol=value}get sourcePrefixListId(){return this._sourcePrefixListId}set sourcePrefixListId(value){cdk().traceProperty(this.node,"SourcePrefixListId"),this._sourcePrefixListId=value}get sourceSecurityGroupId(){return this._sourceSecurityGroupId}set sourceSecurityGroupId(value){cdk().traceProperty(this.node,"SourceSecurityGroupId"),this._sourceSecurityGroupId=value}get sourceSecurityGroupName(){return this._sourceSecurityGroupName}set sourceSecurityGroupName(value){cdk().traceProperty(this.node,"SourceSecurityGroupName"),this._sourceSecurityGroupName=value}get sourceSecurityGroupOwnerId(){return this._sourceSecurityGroupOwnerId}set sourceSecurityGroupOwnerId(value){cdk().traceProperty(this.node,"SourceSecurityGroupOwnerId"),this._sourceSecurityGroupOwnerId=value}get toPort(){return this._toPort}set toPort(value){cdk().traceProperty(this.node,"ToPort"),this._toPort=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{cidrIp:this._cidrIp,cidrIpv6:this._cidrIpv6,description:this._description,fromPort:this._fromPort,groupId:this._groupId,groupName:this._groupName,ipProtocol:this._ipProtocol,sourcePrefixListId:this._sourcePrefixListId,sourceSecurityGroupId:this._sourceSecurityGroupId,sourceSecurityGroupName:this._sourceSecurityGroupName,sourceSecurityGroupOwnerId:this._sourceSecurityGroupOwnerId,toPort:this._toPort}}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",CfnSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSecurityGroupIngressPropsToCloudFormation(props)}}exports.CfnSecurityGroupIngress=CfnSecurityGroupIngress;function CfnSecurityGroupIngressPropsValidator(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("cidrIp",cdk().validateString)(properties.cidrIp)),errors.collect(cdk().propertyValidator("cidrIpv6",cdk().validateString)(properties.cidrIpv6)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("fromPort",cdk().validateNumber)(properties.fromPort)),errors.collect(cdk().propertyValidator("groupId",cdk().validateString)(properties.groupId)),errors.collect(cdk().propertyValidator("groupName",cdk().validateString)(properties.groupName)),errors.collect(cdk().propertyValidator("ipProtocol",cdk().requiredValidator)(properties.ipProtocol)),errors.collect(cdk().propertyValidator("ipProtocol",cdk().validateString)(properties.ipProtocol)),errors.collect(cdk().propertyValidator("sourcePrefixListId",cdk().validateString)(properties.sourcePrefixListId)),errors.collect(cdk().propertyValidator("sourceSecurityGroupId",cdk().validateString)(properties.sourceSecurityGroupId)),errors.collect(cdk().propertyValidator("sourceSecurityGroupName",cdk().validateString)(properties.sourceSecurityGroupName)),errors.collect(cdk().propertyValidator("sourceSecurityGroupOwnerId",cdk().validateString)(properties.sourceSecurityGroupOwnerId)),errors.collect(cdk().propertyValidator("toPort",cdk().validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "CfnSecurityGroupIngressProps"')}function convertCfnSecurityGroupIngressPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityGroupIngressPropsValidator(properties).assertSuccess(),{CidrIp:cdk().stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk().stringToCloudFormation(properties.cidrIpv6),Description:cdk().stringToCloudFormation(properties.description),FromPort:cdk().numberToCloudFormation(properties.fromPort),GroupId:cdk().stringToCloudFormation(properties.groupId),GroupName:cdk().stringToCloudFormation(properties.groupName),IpProtocol:cdk().stringToCloudFormation(properties.ipProtocol),SourcePrefixListId:cdk().stringToCloudFormation(properties.sourcePrefixListId),SourceSecurityGroupId:cdk().stringToCloudFormation(properties.sourceSecurityGroupId),SourceSecurityGroupName:cdk().stringToCloudFormation(properties.sourceSecurityGroupName),SourceSecurityGroupOwnerId:cdk().stringToCloudFormation(properties.sourceSecurityGroupOwnerId),ToPort:cdk().numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupIngressPropsFromCloudFormation(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("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse().FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse().FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("groupId","GroupId",properties.GroupId!=null?cfn_parse().FromCloudFormation.getString(properties.GroupId):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse().FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("ipProtocol","IpProtocol",properties.IpProtocol!=null?cfn_parse().FromCloudFormation.getString(properties.IpProtocol):void 0),ret.addPropertyResult("sourcePrefixListId","SourcePrefixListId",properties.SourcePrefixListId!=null?cfn_parse().FromCloudFormation.getString(properties.SourcePrefixListId):void 0),ret.addPropertyResult("sourceSecurityGroupId","SourceSecurityGroupId",properties.SourceSecurityGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.SourceSecurityGroupId):void 0),ret.addPropertyResult("sourceSecurityGroupName","SourceSecurityGroupName",properties.SourceSecurityGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.SourceSecurityGroupName):void 0),ret.addPropertyResult("sourceSecurityGroupOwnerId","SourceSecurityGroupOwnerId",properties.SourceSecurityGroupOwnerId!=null?cfn_parse().FromCloudFormation.getString(properties.SourceSecurityGroupOwnerId):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSpotFleet extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnSpotFleet",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::SpotFleet";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSpotFleetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSpotFleet(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 isCfnSpotFleet(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSpotFleet.CFN_RESOURCE_TYPE_NAME}_spotFleetRequestConfigData;_tags;cfnPropertyNames={spotFleetRequestConfigData:"SpotFleetRequestConfigData",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnSpotFleet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnSpotFleetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSpotFleet),error}cdk().requireProperty(props,"spotFleetRequestConfigData",this),this._spotFleetRequestConfigData=props.spotFleetRequestConfigData,this._tags=props.tags}get spotFleetRef(){return{spotFleetId:this.ref}}get spotFleetRequestConfigData(){return this._spotFleetRequestConfigData}set spotFleetRequestConfigData(value){cdk().traceProperty(this.node,"SpotFleetRequestConfigData"),this._spotFleetRequestConfigData=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{spotFleetRequestConfigData:this._spotFleetRequestConfigData,tags:this._tags}}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",CfnSpotFleet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSpotFleetPropsToCloudFormation(props)}}exports.CfnSpotFleet=CfnSpotFleet;function CfnSpotFleetSpotFleetTagSpecificationPropertyValidator(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("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "SpotFleetTagSpecificationProperty"')}function convertCfnSpotFleetSpotFleetTagSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetSpotFleetTagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk().stringToCloudFormation(properties.resourceType),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnSpotFleetSpotFleetTagSpecificationPropertyFromCloudFormation(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("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):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}function CfnSpotFleetFleetLaunchTemplateSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("launchTemplateId",cdk().validateString)(properties.launchTemplateId)),errors.collect(cdk().propertyValidator("launchTemplateName",cdk().validateString)(properties.launchTemplateName)),errors.collect(cdk().propertyValidator("version",cdk().requiredValidator)(properties.version)),errors.collect(cdk().propertyValidator("version",cdk().validateString)(properties.version)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateSpecificationProperty"')}function convertCfnSpotFleetFleetLaunchTemplateSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetFleetLaunchTemplateSpecificationPropertyValidator(properties).assertSuccess(),{LaunchTemplateId:cdk().stringToCloudFormation(properties.launchTemplateId),LaunchTemplateName:cdk().stringToCloudFormation(properties.launchTemplateName),Version:cdk().stringToCloudFormation(properties.version)}):properties}function CfnSpotFleetFleetLaunchTemplateSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse().FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("version","Version",properties.Version!=null?cfn_parse().FromCloudFormation.getString(properties.Version):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetNetworkInterfaceCountRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkInterfaceCountRequestProperty"')}function convertCfnSpotFleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetNetworkInterfaceCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetNetworkInterfaceCountRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetMemoryGiBPerVCpuRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryGiBPerVCpuRequestProperty"')}function convertCfnSpotFleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetMemoryGiBPerVCpuRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetVCpuCountRangeRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "VCpuCountRangeRequestProperty"')}function convertCfnSpotFleetVCpuCountRangeRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetVCpuCountRangeRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetVCpuCountRangeRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetNetworkBandwidthGbpsRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkBandwidthGbpsRequestProperty"')}function convertCfnSpotFleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetNetworkBandwidthGbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetAcceleratorCountRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorCountRequestProperty"')}function convertCfnSpotFleetAcceleratorCountRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetAcceleratorCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetAcceleratorCountRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "BaselineEbsBandwidthMbpsRequestProperty"')}function convertCfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorTotalMemoryMiBRequestProperty"')}function convertCfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetMemoryMiBRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryMiBRequestProperty"')}function convertCfnSpotFleetMemoryMiBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetMemoryMiBRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetTotalLocalStorageGBRequestPropertyValidator(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("max",cdk().validateNumber)(properties.max)),errors.collect(cdk().propertyValidator("min",cdk().validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "TotalLocalStorageGBRequestProperty"')}function convertCfnSpotFleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetTotalLocalStorageGBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk().numberToCloudFormation(properties.max),Min:cdk().numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetTotalLocalStorageGBRequestPropertyFromCloudFormation(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("max","Max",properties.Max!=null?cfn_parse().FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse().FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetPerformanceFactorReferenceRequestPropertyValidator(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("instanceFamily",cdk().validateString)(properties.instanceFamily)),errors.wrap('supplied properties not correct for "PerformanceFactorReferenceRequestProperty"')}function convertCfnSpotFleetPerformanceFactorReferenceRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetPerformanceFactorReferenceRequestPropertyValidator(properties).assertSuccess(),{InstanceFamily:cdk().stringToCloudFormation(properties.instanceFamily)}):properties}function CfnSpotFleetPerformanceFactorReferenceRequestPropertyFromCloudFormation(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("instanceFamily","InstanceFamily",properties.InstanceFamily!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceFamily):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetCpuPerformanceFactorRequestPropertyValidator(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("references",cdk().listValidator(CfnSpotFleetPerformanceFactorReferenceRequestPropertyValidator))(properties.references)),errors.wrap('supplied properties not correct for "CpuPerformanceFactorRequestProperty"')}function convertCfnSpotFleetCpuPerformanceFactorRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetCpuPerformanceFactorRequestPropertyValidator(properties).assertSuccess(),{References:cdk().listMapper(convertCfnSpotFleetPerformanceFactorReferenceRequestPropertyToCloudFormation)(properties.references)}):properties}function CfnSpotFleetCpuPerformanceFactorRequestPropertyFromCloudFormation(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("references","References",properties.References!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetPerformanceFactorReferenceRequestPropertyFromCloudFormation)(properties.References):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetBaselinePerformanceFactorsRequestPropertyValidator(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("cpu",CfnSpotFleetCpuPerformanceFactorRequestPropertyValidator)(properties.cpu)),errors.wrap('supplied properties not correct for "BaselinePerformanceFactorsRequestProperty"')}function convertCfnSpotFleetBaselinePerformanceFactorsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetBaselinePerformanceFactorsRequestPropertyValidator(properties).assertSuccess(),{Cpu:convertCfnSpotFleetCpuPerformanceFactorRequestPropertyToCloudFormation(properties.cpu)}):properties}function CfnSpotFleetBaselinePerformanceFactorsRequestPropertyFromCloudFormation(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("cpu","Cpu",properties.Cpu!=null?CfnSpotFleetCpuPerformanceFactorRequestPropertyFromCloudFormation(properties.Cpu):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetInstanceRequirementsRequestPropertyValidator(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("acceleratorCount",CfnSpotFleetAcceleratorCountRequestPropertyValidator)(properties.acceleratorCount)),errors.collect(cdk().propertyValidator("acceleratorManufacturers",cdk().listValidator(cdk().validateString))(properties.acceleratorManufacturers)),errors.collect(cdk().propertyValidator("acceleratorNames",cdk().listValidator(cdk().validateString))(properties.acceleratorNames)),errors.collect(cdk().propertyValidator("acceleratorTotalMemoryMiB",CfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyValidator)(properties.acceleratorTotalMemoryMiB)),errors.collect(cdk().propertyValidator("acceleratorTypes",cdk().listValidator(cdk().validateString))(properties.acceleratorTypes)),errors.collect(cdk().propertyValidator("allowedInstanceTypes",cdk().listValidator(cdk().validateString))(properties.allowedInstanceTypes)),errors.collect(cdk().propertyValidator("bareMetal",cdk().validateString)(properties.bareMetal)),errors.collect(cdk().propertyValidator("baselineEbsBandwidthMbps",CfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyValidator)(properties.baselineEbsBandwidthMbps)),errors.collect(cdk().propertyValidator("baselinePerformanceFactors",CfnSpotFleetBaselinePerformanceFactorsRequestPropertyValidator)(properties.baselinePerformanceFactors)),errors.collect(cdk().propertyValidator("burstablePerformance",cdk().validateString)(properties.burstablePerformance)),errors.collect(cdk().propertyValidator("cpuManufacturers",cdk().listValidator(cdk().validateString))(properties.cpuManufacturers)),errors.collect(cdk().propertyValidator("excludedInstanceTypes",cdk().listValidator(cdk().validateString))(properties.excludedInstanceTypes)),errors.collect(cdk().propertyValidator("instanceGenerations",cdk().listValidator(cdk().validateString))(properties.instanceGenerations)),errors.collect(cdk().propertyValidator("localStorage",cdk().validateString)(properties.localStorage)),errors.collect(cdk().propertyValidator("localStorageTypes",cdk().listValidator(cdk().validateString))(properties.localStorageTypes)),errors.collect(cdk().propertyValidator("maxSpotPriceAsPercentageOfOptimalOnDemandPrice",cdk().validateNumber)(properties.maxSpotPriceAsPercentageOfOptimalOnDemandPrice)),errors.collect(cdk().propertyValidator("memoryGiBPerVCpu",CfnSpotFleetMemoryGiBPerVCpuRequestPropertyValidator)(properties.memoryGiBPerVCpu)),errors.collect(cdk().propertyValidator("memoryMiB",CfnSpotFleetMemoryMiBRequestPropertyValidator)(properties.memoryMiB)),errors.collect(cdk().propertyValidator("networkBandwidthGbps",CfnSpotFleetNetworkBandwidthGbpsRequestPropertyValidator)(properties.networkBandwidthGbps)),errors.collect(cdk().propertyValidator("networkInterfaceCount",CfnSpotFleetNetworkInterfaceCountRequestPropertyValidator)(properties.networkInterfaceCount)),errors.collect(cdk().propertyValidator("onDemandMaxPricePercentageOverLowestPrice",cdk().validateNumber)(properties.onDemandMaxPricePercentageOverLowestPrice)),errors.collect(cdk().propertyValidator("requireEncryptionInTransit",cdk().validateBoolean)(properties.requireEncryptionInTransit)),errors.collect(cdk().propertyValidator("requireHibernateSupport",cdk().validateBoolean)(properties.requireHibernateSupport)),errors.collect(cdk().propertyValidator("spotMaxPricePercentageOverLowestPrice",cdk().validateNumber)(properties.spotMaxPricePercentageOverLowestPrice)),errors.collect(cdk().propertyValidator("totalLocalStorageGb",CfnSpotFleetTotalLocalStorageGBRequestPropertyValidator)(properties.totalLocalStorageGb)),errors.collect(cdk().propertyValidator("vCpuCount",CfnSpotFleetVCpuCountRangeRequestPropertyValidator)(properties.vCpuCount)),errors.wrap('supplied properties not correct for "InstanceRequirementsRequestProperty"')}function convertCfnSpotFleetInstanceRequirementsRequestPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetInstanceRequirementsRequestPropertyValidator(properties).assertSuccess(),{AcceleratorCount:convertCfnSpotFleetAcceleratorCountRequestPropertyToCloudFormation(properties.acceleratorCount),AcceleratorManufacturers:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorManufacturers),AcceleratorNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorNames),AcceleratorTotalMemoryMiB:convertCfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties.acceleratorTotalMemoryMiB),AcceleratorTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.acceleratorTypes),AllowedInstanceTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.allowedInstanceTypes),BareMetal:cdk().stringToCloudFormation(properties.bareMetal),BaselineEbsBandwidthMbps:convertCfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties.baselineEbsBandwidthMbps),BaselinePerformanceFactors:convertCfnSpotFleetBaselinePerformanceFactorsRequestPropertyToCloudFormation(properties.baselinePerformanceFactors),BurstablePerformance:cdk().stringToCloudFormation(properties.burstablePerformance),CpuManufacturers:cdk().listMapper(cdk().stringToCloudFormation)(properties.cpuManufacturers),ExcludedInstanceTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.excludedInstanceTypes),InstanceGenerations:cdk().listMapper(cdk().stringToCloudFormation)(properties.instanceGenerations),LocalStorage:cdk().stringToCloudFormation(properties.localStorage),LocalStorageTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.localStorageTypes),MaxSpotPriceAsPercentageOfOptimalOnDemandPrice:cdk().numberToCloudFormation(properties.maxSpotPriceAsPercentageOfOptimalOnDemandPrice),MemoryGiBPerVCpu:convertCfnSpotFleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties.memoryGiBPerVCpu),MemoryMiB:convertCfnSpotFleetMemoryMiBRequestPropertyToCloudFormation(properties.memoryMiB),NetworkBandwidthGbps:convertCfnSpotFleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties.networkBandwidthGbps),NetworkInterfaceCount:convertCfnSpotFleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties.networkInterfaceCount),OnDemandMaxPricePercentageOverLowestPrice:cdk().numberToCloudFormation(properties.onDemandMaxPricePercentageOverLowestPrice),RequireEncryptionInTransit:cdk().booleanToCloudFormation(properties.requireEncryptionInTransit),RequireHibernateSupport:cdk().booleanToCloudFormation(properties.requireHibernateSupport),SpotMaxPricePercentageOverLowestPrice:cdk().numberToCloudFormation(properties.spotMaxPricePercentageOverLowestPrice),TotalLocalStorageGB:convertCfnSpotFleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties.totalLocalStorageGb),VCpuCount:convertCfnSpotFleetVCpuCountRangeRequestPropertyToCloudFormation(properties.vCpuCount)}):properties}function CfnSpotFleetInstanceRequirementsRequestPropertyFromCloudFormation(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("acceleratorCount","AcceleratorCount",properties.AcceleratorCount!=null?CfnSpotFleetAcceleratorCountRequestPropertyFromCloudFormation(properties.AcceleratorCount):void 0),ret.addPropertyResult("acceleratorManufacturers","AcceleratorManufacturers",properties.AcceleratorManufacturers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorManufacturers):void 0),ret.addPropertyResult("acceleratorNames","AcceleratorNames",properties.AcceleratorNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorNames):void 0),ret.addPropertyResult("acceleratorTotalMemoryMiB","AcceleratorTotalMemoryMiB",properties.AcceleratorTotalMemoryMiB!=null?CfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(properties.AcceleratorTotalMemoryMiB):void 0),ret.addPropertyResult("acceleratorTypes","AcceleratorTypes",properties.AcceleratorTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AcceleratorTypes):void 0),ret.addPropertyResult("allowedInstanceTypes","AllowedInstanceTypes",properties.AllowedInstanceTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AllowedInstanceTypes):void 0),ret.addPropertyResult("bareMetal","BareMetal",properties.BareMetal!=null?cfn_parse().FromCloudFormation.getString(properties.BareMetal):void 0),ret.addPropertyResult("baselineEbsBandwidthMbps","BaselineEbsBandwidthMbps",properties.BaselineEbsBandwidthMbps!=null?CfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties.BaselineEbsBandwidthMbps):void 0),ret.addPropertyResult("baselinePerformanceFactors","BaselinePerformanceFactors",properties.BaselinePerformanceFactors!=null?CfnSpotFleetBaselinePerformanceFactorsRequestPropertyFromCloudFormation(properties.BaselinePerformanceFactors):void 0),ret.addPropertyResult("burstablePerformance","BurstablePerformance",properties.BurstablePerformance!=null?cfn_parse().FromCloudFormation.getString(properties.BurstablePerformance):void 0),ret.addPropertyResult("cpuManufacturers","CpuManufacturers",properties.CpuManufacturers!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.CpuManufacturers):void 0),ret.addPropertyResult("excludedInstanceTypes","ExcludedInstanceTypes",properties.ExcludedInstanceTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExcludedInstanceTypes):void 0),ret.addPropertyResult("instanceGenerations","InstanceGenerations",properties.InstanceGenerations!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.InstanceGenerations):void 0),ret.addPropertyResult("localStorage","LocalStorage",properties.LocalStorage!=null?cfn_parse().FromCloudFormation.getString(properties.LocalStorage):void 0),ret.addPropertyResult("localStorageTypes","LocalStorageTypes",properties.LocalStorageTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.LocalStorageTypes):void 0),ret.addPropertyResult("maxSpotPriceAsPercentageOfOptimalOnDemandPrice","MaxSpotPriceAsPercentageOfOptimalOnDemandPrice",properties.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice):void 0),ret.addPropertyResult("memoryGiBPerVCpu","MemoryGiBPerVCpu",properties.MemoryGiBPerVCpu!=null?CfnSpotFleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties.MemoryGiBPerVCpu):void 0),ret.addPropertyResult("memoryMiB","MemoryMiB",properties.MemoryMiB!=null?CfnSpotFleetMemoryMiBRequestPropertyFromCloudFormation(properties.MemoryMiB):void 0),ret.addPropertyResult("networkBandwidthGbps","NetworkBandwidthGbps",properties.NetworkBandwidthGbps!=null?CfnSpotFleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties.NetworkBandwidthGbps):void 0),ret.addPropertyResult("networkInterfaceCount","NetworkInterfaceCount",properties.NetworkInterfaceCount!=null?CfnSpotFleetNetworkInterfaceCountRequestPropertyFromCloudFormation(properties.NetworkInterfaceCount):void 0),ret.addPropertyResult("onDemandMaxPricePercentageOverLowestPrice","OnDemandMaxPricePercentageOverLowestPrice",properties.OnDemandMaxPricePercentageOverLowestPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.OnDemandMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("requireEncryptionInTransit","RequireEncryptionInTransit",properties.RequireEncryptionInTransit!=null?cfn_parse().FromCloudFormation.getBoolean(properties.RequireEncryptionInTransit):void 0),ret.addPropertyResult("requireHibernateSupport","RequireHibernateSupport",properties.RequireHibernateSupport!=null?cfn_parse().FromCloudFormation.getBoolean(properties.RequireHibernateSupport):void 0),ret.addPropertyResult("spotMaxPricePercentageOverLowestPrice","SpotMaxPricePercentageOverLowestPrice",properties.SpotMaxPricePercentageOverLowestPrice!=null?cfn_parse().FromCloudFormation.getNumber(properties.SpotMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("totalLocalStorageGb","TotalLocalStorageGB",properties.TotalLocalStorageGB!=null?CfnSpotFleetTotalLocalStorageGBRequestPropertyFromCloudFormation(properties.TotalLocalStorageGB):void 0),ret.addPropertyResult("vCpuCount","VCpuCount",properties.VCpuCount!=null?CfnSpotFleetVCpuCountRangeRequestPropertyFromCloudFormation(properties.VCpuCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetLaunchTemplateOverridesPropertyValidator(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("availabilityZoneId",cdk().validateString)(properties.availabilityZoneId)),errors.collect(cdk().propertyValidator("instanceRequirements",CfnSpotFleetInstanceRequirementsRequestPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("priority",cdk().validateNumber)(properties.priority)),errors.collect(cdk().propertyValidator("spotPrice",cdk().validateString)(properties.spotPrice)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.collect(cdk().propertyValidator("weightedCapacity",cdk().validateNumber)(properties.weightedCapacity)),errors.wrap('supplied properties not correct for "LaunchTemplateOverridesProperty"')}function convertCfnSpotFleetLaunchTemplateOverridesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetLaunchTemplateOverridesPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk().stringToCloudFormation(properties.availabilityZoneId),InstanceRequirements:convertCfnSpotFleetInstanceRequirementsRequestPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk().stringToCloudFormation(properties.instanceType),Priority:cdk().numberToCloudFormation(properties.priority),SpotPrice:cdk().stringToCloudFormation(properties.spotPrice),SubnetId:cdk().stringToCloudFormation(properties.subnetId),WeightedCapacity:cdk().numberToCloudFormation(properties.weightedCapacity)}):properties}function CfnSpotFleetLaunchTemplateOverridesPropertyFromCloudFormation(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("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnSpotFleetInstanceRequirementsRequestPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse().FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("spotPrice","SpotPrice",properties.SpotPrice!=null?cfn_parse().FromCloudFormation.getString(properties.SpotPrice):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("weightedCapacity","WeightedCapacity",properties.WeightedCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.WeightedCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetLaunchTemplateConfigPropertyValidator(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("launchTemplateSpecification",CfnSpotFleetFleetLaunchTemplateSpecificationPropertyValidator)(properties.launchTemplateSpecification)),errors.collect(cdk().propertyValidator("overrides",cdk().listValidator(CfnSpotFleetLaunchTemplateOverridesPropertyValidator))(properties.overrides)),errors.wrap('supplied properties not correct for "LaunchTemplateConfigProperty"')}function convertCfnSpotFleetLaunchTemplateConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetLaunchTemplateConfigPropertyValidator(properties).assertSuccess(),{LaunchTemplateSpecification:convertCfnSpotFleetFleetLaunchTemplateSpecificationPropertyToCloudFormation(properties.launchTemplateSpecification),Overrides:cdk().listMapper(convertCfnSpotFleetLaunchTemplateOverridesPropertyToCloudFormation)(properties.overrides)}):properties}function CfnSpotFleetLaunchTemplateConfigPropertyFromCloudFormation(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("launchTemplateSpecification","LaunchTemplateSpecification",properties.LaunchTemplateSpecification!=null?CfnSpotFleetFleetLaunchTemplateSpecificationPropertyFromCloudFormation(properties.LaunchTemplateSpecification):void 0),ret.addPropertyResult("overrides","Overrides",properties.Overrides!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetLaunchTemplateOverridesPropertyFromCloudFormation)(properties.Overrides):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetSpotCapacityRebalancePropertyValidator(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("replacementStrategy",cdk().validateString)(properties.replacementStrategy)),errors.collect(cdk().propertyValidator("terminationDelay",cdk().validateNumber)(properties.terminationDelay)),errors.wrap('supplied properties not correct for "SpotCapacityRebalanceProperty"')}function convertCfnSpotFleetSpotCapacityRebalancePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetSpotCapacityRebalancePropertyValidator(properties).assertSuccess(),{ReplacementStrategy:cdk().stringToCloudFormation(properties.replacementStrategy),TerminationDelay:cdk().numberToCloudFormation(properties.terminationDelay)}):properties}function CfnSpotFleetSpotCapacityRebalancePropertyFromCloudFormation(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("replacementStrategy","ReplacementStrategy",properties.ReplacementStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.ReplacementStrategy):void 0),ret.addPropertyResult("terminationDelay","TerminationDelay",properties.TerminationDelay!=null?cfn_parse().FromCloudFormation.getNumber(properties.TerminationDelay):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetSpotMaintenanceStrategiesPropertyValidator(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("capacityRebalance",CfnSpotFleetSpotCapacityRebalancePropertyValidator)(properties.capacityRebalance)),errors.wrap('supplied properties not correct for "SpotMaintenanceStrategiesProperty"')}function convertCfnSpotFleetSpotMaintenanceStrategiesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetSpotMaintenanceStrategiesPropertyValidator(properties).assertSuccess(),{CapacityRebalance:convertCfnSpotFleetSpotCapacityRebalancePropertyToCloudFormation(properties.capacityRebalance)}):properties}function CfnSpotFleetSpotMaintenanceStrategiesPropertyFromCloudFormation(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("capacityRebalance","CapacityRebalance",properties.CapacityRebalance!=null?CfnSpotFleetSpotCapacityRebalancePropertyFromCloudFormation(properties.CapacityRebalance):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetGroupIdentifierPropertyValidator(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("groupId",cdk().requiredValidator)(properties.groupId)),errors.collect(cdk().propertyValidator("groupId",cdk().validateString)(properties.groupId)),errors.wrap('supplied properties not correct for "GroupIdentifierProperty"')}function convertCfnSpotFleetGroupIdentifierPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetGroupIdentifierPropertyValidator(properties).assertSuccess(),{GroupId:cdk().stringToCloudFormation(properties.groupId)}):properties}function CfnSpotFleetGroupIdentifierPropertyFromCloudFormation(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("groupId","GroupId",properties.GroupId!=null?cfn_parse().FromCloudFormation.getString(properties.GroupId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetEbsBlockDevicePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.collect(cdk().propertyValidator("iops",cdk().validateNumber)(properties.iops)),errors.collect(cdk().propertyValidator("snapshotId",cdk().validateString)(properties.snapshotId)),errors.collect(cdk().propertyValidator("volumeSize",cdk().validateNumber)(properties.volumeSize)),errors.collect(cdk().propertyValidator("volumeType",cdk().validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsBlockDeviceProperty"')}function convertCfnSpotFleetEbsBlockDevicePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetEbsBlockDevicePropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk().booleanToCloudFormation(properties.encrypted),Iops:cdk().numberToCloudFormation(properties.iops),SnapshotId:cdk().stringToCloudFormation(properties.snapshotId),VolumeSize:cdk().numberToCloudFormation(properties.volumeSize),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnSpotFleetEbsBlockDevicePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse().FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetBlockDeviceMappingPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deviceName",cdk().requiredValidator)(properties.deviceName)),errors.collect(cdk().propertyValidator("deviceName",cdk().validateString)(properties.deviceName)),errors.collect(cdk().propertyValidator("ebs",CfnSpotFleetEbsBlockDevicePropertyValidator)(properties.ebs)),errors.collect(cdk().propertyValidator("noDevice",cdk().validateString)(properties.noDevice)),errors.collect(cdk().propertyValidator("virtualName",cdk().validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "BlockDeviceMappingProperty"')}function convertCfnSpotFleetBlockDeviceMappingPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetBlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk().stringToCloudFormation(properties.deviceName),Ebs:convertCfnSpotFleetEbsBlockDevicePropertyToCloudFormation(properties.ebs),NoDevice:cdk().stringToCloudFormation(properties.noDevice),VirtualName:cdk().stringToCloudFormation(properties.virtualName)}):properties}function CfnSpotFleetBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",properties.DeviceName!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceName):void 0),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnSpotFleetEbsBlockDevicePropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?cfn_parse().FromCloudFormation.getString(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse().FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetIamInstanceProfileSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.wrap('supplied properties not correct for "IamInstanceProfileSpecificationProperty"')}function convertCfnSpotFleetIamInstanceProfileSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetIamInstanceProfileSpecificationPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn)}):properties}function CfnSpotFleetIamInstanceProfileSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetSpotPlacementPropertyValidator(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("availabilityZoneId",cdk().validateString)(properties.availabilityZoneId)),errors.collect(cdk().propertyValidator("groupName",cdk().validateString)(properties.groupName)),errors.collect(cdk().propertyValidator("tenancy",cdk().validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "SpotPlacementProperty"')}function convertCfnSpotFleetSpotPlacementPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetSpotPlacementPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk().stringToCloudFormation(properties.availabilityZoneId),GroupName:cdk().stringToCloudFormation(properties.groupName),Tenancy:cdk().stringToCloudFormation(properties.tenancy)}):properties}function CfnSpotFleetSpotPlacementPropertyFromCloudFormation(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("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse().FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse().FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetPrivateIpAddressSpecificationPropertyValidator(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("primary",cdk().validateBoolean)(properties.primary)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().requiredValidator)(properties.privateIpAddress)),errors.collect(cdk().propertyValidator("privateIpAddress",cdk().validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddressSpecificationProperty"')}function convertCfnSpotFleetPrivateIpAddressSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetPrivateIpAddressSpecificationPropertyValidator(properties).assertSuccess(),{Primary:cdk().booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk().stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnSpotFleetPrivateIpAddressSpecificationPropertyFromCloudFormation(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("primary","Primary",properties.Primary!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Primary):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetInstanceIpv6AddressPropertyValidator(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("ipv6Address",cdk().requiredValidator)(properties.ipv6Address)),errors.collect(cdk().propertyValidator("ipv6Address",cdk().validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "InstanceIpv6AddressProperty"')}function convertCfnSpotFleetInstanceIpv6AddressPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetInstanceIpv6AddressPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk().stringToCloudFormation(properties.ipv6Address)}):properties}function CfnSpotFleetInstanceIpv6AddressPropertyFromCloudFormation(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("ipv6Address","Ipv6Address",properties.Ipv6Address!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6Address):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyValidator(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("associatePublicIpAddress",cdk().validateBoolean)(properties.associatePublicIpAddress)),errors.collect(cdk().propertyValidator("deleteOnTermination",cdk().validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("deviceIndex",cdk().validateNumber)(properties.deviceIndex)),errors.collect(cdk().propertyValidator("groups",cdk().listValidator(cdk().validateString))(properties.groups)),errors.collect(cdk().propertyValidator("ipv6AddressCount",cdk().validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk().propertyValidator("ipv6Addresses",cdk().listValidator(CfnSpotFleetInstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("privateIpAddresses",cdk().listValidator(CfnSpotFleetPrivateIpAddressSpecificationPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk().propertyValidator("secondaryPrivateIpAddressCount",cdk().validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "InstanceNetworkInterfaceSpecificationProperty"')}function convertCfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyValidator(properties).assertSuccess(),{AssociatePublicIpAddress:cdk().booleanToCloudFormation(properties.associatePublicIpAddress),DeleteOnTermination:cdk().booleanToCloudFormation(properties.deleteOnTermination),Description:cdk().stringToCloudFormation(properties.description),DeviceIndex:cdk().numberToCloudFormation(properties.deviceIndex),Groups:cdk().listMapper(cdk().stringToCloudFormation)(properties.groups),Ipv6AddressCount:cdk().numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk().listMapper(convertCfnSpotFleetInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddresses:cdk().listMapper(convertCfnSpotFleetPrivateIpAddressSpecificationPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk().numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyFromCloudFormation(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("associatePublicIpAddress","AssociatePublicIpAddress",properties.AssociatePublicIpAddress!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AssociatePublicIpAddress):void 0),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceIndex","DeviceIndex",properties.DeviceIndex!=null?cfn_parse().FromCloudFormation.getNumber(properties.DeviceIndex):void 0),ret.addPropertyResult("groups","Groups",properties.Groups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Groups):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetPrivateIpAddressSpecificationPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetSpotFleetMonitoringPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "SpotFleetMonitoringProperty"')}function convertCfnSpotFleetSpotFleetMonitoringPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetSpotFleetMonitoringPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnSpotFleetSpotFleetMonitoringPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetSpotFleetLaunchSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("blockDeviceMappings",cdk().listValidator(CfnSpotFleetBlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk().propertyValidator("ebsOptimized",cdk().validateBoolean)(properties.ebsOptimized)),errors.collect(cdk().propertyValidator("iamInstanceProfile",CfnSpotFleetIamInstanceProfileSpecificationPropertyValidator)(properties.iamInstanceProfile)),errors.collect(cdk().propertyValidator("imageId",cdk().requiredValidator)(properties.imageId)),errors.collect(cdk().propertyValidator("imageId",cdk().validateString)(properties.imageId)),errors.collect(cdk().propertyValidator("instanceRequirements",CfnSpotFleetInstanceRequirementsRequestPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk().propertyValidator("instanceType",cdk().validateString)(properties.instanceType)),errors.collect(cdk().propertyValidator("kernelId",cdk().validateString)(properties.kernelId)),errors.collect(cdk().propertyValidator("keyName",cdk().validateString)(properties.keyName)),errors.collect(cdk().propertyValidator("monitoring",CfnSpotFleetSpotFleetMonitoringPropertyValidator)(properties.monitoring)),errors.collect(cdk().propertyValidator("networkInterfaces",cdk().listValidator(CfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyValidator))(properties.networkInterfaces)),errors.collect(cdk().propertyValidator("placement",CfnSpotFleetSpotPlacementPropertyValidator)(properties.placement)),errors.collect(cdk().propertyValidator("ramdiskId",cdk().validateString)(properties.ramdiskId)),errors.collect(cdk().propertyValidator("securityGroups",cdk().listValidator(CfnSpotFleetGroupIdentifierPropertyValidator))(properties.securityGroups)),errors.collect(cdk().propertyValidator("spotPrice",cdk().validateString)(properties.spotPrice)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.collect(cdk().propertyValidator("tagSpecifications",cdk().listValidator(CfnSpotFleetSpotFleetTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk().propertyValidator("userData",cdk().validateString)(properties.userData)),errors.collect(cdk().propertyValidator("weightedCapacity",cdk().validateNumber)(properties.weightedCapacity)),errors.wrap('supplied properties not correct for "SpotFleetLaunchSpecificationProperty"')}function convertCfnSpotFleetSpotFleetLaunchSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetSpotFleetLaunchSpecificationPropertyValidator(properties).assertSuccess(),{BlockDeviceMappings:cdk().listMapper(convertCfnSpotFleetBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),EbsOptimized:cdk().booleanToCloudFormation(properties.ebsOptimized),IamInstanceProfile:convertCfnSpotFleetIamInstanceProfileSpecificationPropertyToCloudFormation(properties.iamInstanceProfile),ImageId:cdk().stringToCloudFormation(properties.imageId),InstanceRequirements:convertCfnSpotFleetInstanceRequirementsRequestPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk().stringToCloudFormation(properties.instanceType),KernelId:cdk().stringToCloudFormation(properties.kernelId),KeyName:cdk().stringToCloudFormation(properties.keyName),Monitoring:convertCfnSpotFleetSpotFleetMonitoringPropertyToCloudFormation(properties.monitoring),NetworkInterfaces:cdk().listMapper(convertCfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyToCloudFormation)(properties.networkInterfaces),Placement:convertCfnSpotFleetSpotPlacementPropertyToCloudFormation(properties.placement),RamdiskId:cdk().stringToCloudFormation(properties.ramdiskId),SecurityGroups:cdk().listMapper(convertCfnSpotFleetGroupIdentifierPropertyToCloudFormation)(properties.securityGroups),SpotPrice:cdk().stringToCloudFormation(properties.spotPrice),SubnetId:cdk().stringToCloudFormation(properties.subnetId),TagSpecifications:cdk().listMapper(convertCfnSpotFleetSpotFleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),UserData:cdk().stringToCloudFormation(properties.userData),WeightedCapacity:cdk().numberToCloudFormation(properties.weightedCapacity)}):properties}function CfnSpotFleetSpotFleetLaunchSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("iamInstanceProfile","IamInstanceProfile",properties.IamInstanceProfile!=null?CfnSpotFleetIamInstanceProfileSpecificationPropertyFromCloudFormation(properties.IamInstanceProfile):void 0),ret.addPropertyResult("imageId","ImageId",properties.ImageId!=null?cfn_parse().FromCloudFormation.getString(properties.ImageId):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnSpotFleetInstanceRequirementsRequestPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("kernelId","KernelId",properties.KernelId!=null?cfn_parse().FromCloudFormation.getString(properties.KernelId):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse().FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("monitoring","Monitoring",properties.Monitoring!=null?CfnSpotFleetSpotFleetMonitoringPropertyFromCloudFormation(properties.Monitoring):void 0),ret.addPropertyResult("networkInterfaces","NetworkInterfaces",properties.NetworkInterfaces!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyFromCloudFormation)(properties.NetworkInterfaces):void 0),ret.addPropertyResult("placement","Placement",properties.Placement!=null?CfnSpotFleetSpotPlacementPropertyFromCloudFormation(properties.Placement):void 0),ret.addPropertyResult("ramdiskId","RamdiskId",properties.RamdiskId!=null?cfn_parse().FromCloudFormation.getString(properties.RamdiskId):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetGroupIdentifierPropertyFromCloudFormation)(properties.SecurityGroups):void 0),ret.addPropertyResult("spotPrice","SpotPrice",properties.SpotPrice!=null?cfn_parse().FromCloudFormation.getString(properties.SpotPrice):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetSpotFleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("userData","UserData",properties.UserData!=null?cfn_parse().FromCloudFormation.getString(properties.UserData):void 0),ret.addPropertyResult("weightedCapacity","WeightedCapacity",properties.WeightedCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.WeightedCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetClassicLoadBalancerPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("name",cdk().requiredValidator)(properties.name)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.wrap('supplied properties not correct for "ClassicLoadBalancerProperty"')}function convertCfnSpotFleetClassicLoadBalancerPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetClassicLoadBalancerPropertyValidator(properties).assertSuccess(),{Name:cdk().stringToCloudFormation(properties.name)}):properties}function CfnSpotFleetClassicLoadBalancerPropertyFromCloudFormation(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.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetClassicLoadBalancersConfigPropertyValidator(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("classicLoadBalancers",cdk().requiredValidator)(properties.classicLoadBalancers)),errors.collect(cdk().propertyValidator("classicLoadBalancers",cdk().listValidator(CfnSpotFleetClassicLoadBalancerPropertyValidator))(properties.classicLoadBalancers)),errors.wrap('supplied properties not correct for "ClassicLoadBalancersConfigProperty"')}function convertCfnSpotFleetClassicLoadBalancersConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetClassicLoadBalancersConfigPropertyValidator(properties).assertSuccess(),{ClassicLoadBalancers:cdk().listMapper(convertCfnSpotFleetClassicLoadBalancerPropertyToCloudFormation)(properties.classicLoadBalancers)}):properties}function CfnSpotFleetClassicLoadBalancersConfigPropertyFromCloudFormation(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("classicLoadBalancers","ClassicLoadBalancers",properties.ClassicLoadBalancers!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetClassicLoadBalancerPropertyFromCloudFormation)(properties.ClassicLoadBalancers):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetTargetGroupPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().requiredValidator)(properties.arn)),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.wrap('supplied properties not correct for "TargetGroupProperty"')}function convertCfnSpotFleetTargetGroupPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetTargetGroupPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn)}):properties}function CfnSpotFleetTargetGroupPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetTargetGroupsConfigPropertyValidator(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("targetGroups",cdk().requiredValidator)(properties.targetGroups)),errors.collect(cdk().propertyValidator("targetGroups",cdk().listValidator(CfnSpotFleetTargetGroupPropertyValidator))(properties.targetGroups)),errors.wrap('supplied properties not correct for "TargetGroupsConfigProperty"')}function convertCfnSpotFleetTargetGroupsConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetTargetGroupsConfigPropertyValidator(properties).assertSuccess(),{TargetGroups:cdk().listMapper(convertCfnSpotFleetTargetGroupPropertyToCloudFormation)(properties.targetGroups)}):properties}function CfnSpotFleetTargetGroupsConfigPropertyFromCloudFormation(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("targetGroups","TargetGroups",properties.TargetGroups!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetTargetGroupPropertyFromCloudFormation)(properties.TargetGroups):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetLoadBalancersConfigPropertyValidator(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("classicLoadBalancersConfig",CfnSpotFleetClassicLoadBalancersConfigPropertyValidator)(properties.classicLoadBalancersConfig)),errors.collect(cdk().propertyValidator("targetGroupsConfig",CfnSpotFleetTargetGroupsConfigPropertyValidator)(properties.targetGroupsConfig)),errors.wrap('supplied properties not correct for "LoadBalancersConfigProperty"')}function convertCfnSpotFleetLoadBalancersConfigPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetLoadBalancersConfigPropertyValidator(properties).assertSuccess(),{ClassicLoadBalancersConfig:convertCfnSpotFleetClassicLoadBalancersConfigPropertyToCloudFormation(properties.classicLoadBalancersConfig),TargetGroupsConfig:convertCfnSpotFleetTargetGroupsConfigPropertyToCloudFormation(properties.targetGroupsConfig)}):properties}function CfnSpotFleetLoadBalancersConfigPropertyFromCloudFormation(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("classicLoadBalancersConfig","ClassicLoadBalancersConfig",properties.ClassicLoadBalancersConfig!=null?CfnSpotFleetClassicLoadBalancersConfigPropertyFromCloudFormation(properties.ClassicLoadBalancersConfig):void 0),ret.addPropertyResult("targetGroupsConfig","TargetGroupsConfig",properties.TargetGroupsConfig!=null?CfnSpotFleetTargetGroupsConfigPropertyFromCloudFormation(properties.TargetGroupsConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetSpotFleetRequestConfigDataPropertyValidator(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("allocationStrategy",cdk().validateString)(properties.allocationStrategy)),errors.collect(cdk().propertyValidator("context",cdk().validateString)(properties.context)),errors.collect(cdk().propertyValidator("excessCapacityTerminationPolicy",cdk().validateString)(properties.excessCapacityTerminationPolicy)),errors.collect(cdk().propertyValidator("iamFleetRole",cdk().requiredValidator)(properties.iamFleetRole)),errors.collect(cdk().propertyValidator("iamFleetRole",cdk().validateString)(properties.iamFleetRole)),errors.collect(cdk().propertyValidator("instanceInterruptionBehavior",cdk().validateString)(properties.instanceInterruptionBehavior)),errors.collect(cdk().propertyValidator("instancePoolsToUseCount",cdk().validateNumber)(properties.instancePoolsToUseCount)),errors.collect(cdk().propertyValidator("launchSpecifications",cdk().listValidator(CfnSpotFleetSpotFleetLaunchSpecificationPropertyValidator))(properties.launchSpecifications)),errors.collect(cdk().propertyValidator("launchTemplateConfigs",cdk().listValidator(CfnSpotFleetLaunchTemplateConfigPropertyValidator))(properties.launchTemplateConfigs)),errors.collect(cdk().propertyValidator("loadBalancersConfig",CfnSpotFleetLoadBalancersConfigPropertyValidator)(properties.loadBalancersConfig)),errors.collect(cdk().propertyValidator("onDemandAllocationStrategy",cdk().validateString)(properties.onDemandAllocationStrategy)),errors.collect(cdk().propertyValidator("onDemandMaxTotalPrice",cdk().validateString)(properties.onDemandMaxTotalPrice)),errors.collect(cdk().propertyValidator("onDemandTargetCapacity",cdk().validateNumber)(properties.onDemandTargetCapacity)),errors.collect(cdk().propertyValidator("replaceUnhealthyInstances",cdk().validateBoolean)(properties.replaceUnhealthyInstances)),errors.collect(cdk().propertyValidator("spotMaintenanceStrategies",CfnSpotFleetSpotMaintenanceStrategiesPropertyValidator)(properties.spotMaintenanceStrategies)),errors.collect(cdk().propertyValidator("spotMaxTotalPrice",cdk().validateString)(properties.spotMaxTotalPrice)),errors.collect(cdk().propertyValidator("spotPrice",cdk().validateString)(properties.spotPrice)),errors.collect(cdk().propertyValidator("tagSpecifications",cdk().listValidator(CfnSpotFleetSpotFleetTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk().propertyValidator("targetCapacity",cdk().requiredValidator)(properties.targetCapacity)),errors.collect(cdk().propertyValidator("targetCapacity",cdk().validateNumber)(properties.targetCapacity)),errors.collect(cdk().propertyValidator("targetCapacityUnitType",cdk().validateString)(properties.targetCapacityUnitType)),errors.collect(cdk().propertyValidator("terminateInstancesWithExpiration",cdk().validateBoolean)(properties.terminateInstancesWithExpiration)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.collect(cdk().propertyValidator("validFrom",cdk().validateString)(properties.validFrom)),errors.collect(cdk().propertyValidator("validUntil",cdk().validateString)(properties.validUntil)),errors.wrap('supplied properties not correct for "SpotFleetRequestConfigDataProperty"')}function convertCfnSpotFleetSpotFleetRequestConfigDataPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetSpotFleetRequestConfigDataPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk().stringToCloudFormation(properties.allocationStrategy),Context:cdk().stringToCloudFormation(properties.context),ExcessCapacityTerminationPolicy:cdk().stringToCloudFormation(properties.excessCapacityTerminationPolicy),IamFleetRole:cdk().stringToCloudFormation(properties.iamFleetRole),InstanceInterruptionBehavior:cdk().stringToCloudFormation(properties.instanceInterruptionBehavior),InstancePoolsToUseCount:cdk().numberToCloudFormation(properties.instancePoolsToUseCount),LaunchSpecifications:cdk().listMapper(convertCfnSpotFleetSpotFleetLaunchSpecificationPropertyToCloudFormation)(properties.launchSpecifications),LaunchTemplateConfigs:cdk().listMapper(convertCfnSpotFleetLaunchTemplateConfigPropertyToCloudFormation)(properties.launchTemplateConfigs),LoadBalancersConfig:convertCfnSpotFleetLoadBalancersConfigPropertyToCloudFormation(properties.loadBalancersConfig),OnDemandAllocationStrategy:cdk().stringToCloudFormation(properties.onDemandAllocationStrategy),OnDemandMaxTotalPrice:cdk().stringToCloudFormation(properties.onDemandMaxTotalPrice),OnDemandTargetCapacity:cdk().numberToCloudFormation(properties.onDemandTargetCapacity),ReplaceUnhealthyInstances:cdk().booleanToCloudFormation(properties.replaceUnhealthyInstances),SpotMaintenanceStrategies:convertCfnSpotFleetSpotMaintenanceStrategiesPropertyToCloudFormation(properties.spotMaintenanceStrategies),SpotMaxTotalPrice:cdk().stringToCloudFormation(properties.spotMaxTotalPrice),SpotPrice:cdk().stringToCloudFormation(properties.spotPrice),TagSpecifications:cdk().listMapper(convertCfnSpotFleetSpotFleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),TargetCapacity:cdk().numberToCloudFormation(properties.targetCapacity),TargetCapacityUnitType:cdk().stringToCloudFormation(properties.targetCapacityUnitType),TerminateInstancesWithExpiration:cdk().booleanToCloudFormation(properties.terminateInstancesWithExpiration),Type:cdk().stringToCloudFormation(properties.type),ValidFrom:cdk().stringToCloudFormation(properties.validFrom),ValidUntil:cdk().stringToCloudFormation(properties.validUntil)}):properties}function CfnSpotFleetSpotFleetRequestConfigDataPropertyFromCloudFormation(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("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("context","Context",properties.Context!=null?cfn_parse().FromCloudFormation.getString(properties.Context):void 0),ret.addPropertyResult("excessCapacityTerminationPolicy","ExcessCapacityTerminationPolicy",properties.ExcessCapacityTerminationPolicy!=null?cfn_parse().FromCloudFormation.getString(properties.ExcessCapacityTerminationPolicy):void 0),ret.addPropertyResult("iamFleetRole","IamFleetRole",properties.IamFleetRole!=null?cfn_parse().FromCloudFormation.getString(properties.IamFleetRole):void 0),ret.addPropertyResult("instanceInterruptionBehavior","InstanceInterruptionBehavior",properties.InstanceInterruptionBehavior!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceInterruptionBehavior):void 0),ret.addPropertyResult("instancePoolsToUseCount","InstancePoolsToUseCount",properties.InstancePoolsToUseCount!=null?cfn_parse().FromCloudFormation.getNumber(properties.InstancePoolsToUseCount):void 0),ret.addPropertyResult("launchSpecifications","LaunchSpecifications",properties.LaunchSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetSpotFleetLaunchSpecificationPropertyFromCloudFormation)(properties.LaunchSpecifications):void 0),ret.addPropertyResult("launchTemplateConfigs","LaunchTemplateConfigs",properties.LaunchTemplateConfigs!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetLaunchTemplateConfigPropertyFromCloudFormation)(properties.LaunchTemplateConfigs):void 0),ret.addPropertyResult("loadBalancersConfig","LoadBalancersConfig",properties.LoadBalancersConfig!=null?CfnSpotFleetLoadBalancersConfigPropertyFromCloudFormation(properties.LoadBalancersConfig):void 0),ret.addPropertyResult("onDemandAllocationStrategy","OnDemandAllocationStrategy",properties.OnDemandAllocationStrategy!=null?cfn_parse().FromCloudFormation.getString(properties.OnDemandAllocationStrategy):void 0),ret.addPropertyResult("onDemandMaxTotalPrice","OnDemandMaxTotalPrice",properties.OnDemandMaxTotalPrice!=null?cfn_parse().FromCloudFormation.getString(properties.OnDemandMaxTotalPrice):void 0),ret.addPropertyResult("onDemandTargetCapacity","OnDemandTargetCapacity",properties.OnDemandTargetCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.OnDemandTargetCapacity):void 0),ret.addPropertyResult("replaceUnhealthyInstances","ReplaceUnhealthyInstances",properties.ReplaceUnhealthyInstances!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ReplaceUnhealthyInstances):void 0),ret.addPropertyResult("spotMaintenanceStrategies","SpotMaintenanceStrategies",properties.SpotMaintenanceStrategies!=null?CfnSpotFleetSpotMaintenanceStrategiesPropertyFromCloudFormation(properties.SpotMaintenanceStrategies):void 0),ret.addPropertyResult("spotMaxTotalPrice","SpotMaxTotalPrice",properties.SpotMaxTotalPrice!=null?cfn_parse().FromCloudFormation.getString(properties.SpotMaxTotalPrice):void 0),ret.addPropertyResult("spotPrice","SpotPrice",properties.SpotPrice!=null?cfn_parse().FromCloudFormation.getString(properties.SpotPrice):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnSpotFleetSpotFleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("targetCapacity","TargetCapacity",properties.TargetCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.TargetCapacity):void 0),ret.addPropertyResult("targetCapacityUnitType","TargetCapacityUnitType",properties.TargetCapacityUnitType!=null?cfn_parse().FromCloudFormation.getString(properties.TargetCapacityUnitType):void 0),ret.addPropertyResult("terminateInstancesWithExpiration","TerminateInstancesWithExpiration",properties.TerminateInstancesWithExpiration!=null?cfn_parse().FromCloudFormation.getBoolean(properties.TerminateInstancesWithExpiration):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("validFrom","ValidFrom",properties.ValidFrom!=null?cfn_parse().FromCloudFormation.getString(properties.ValidFrom):void 0),ret.addPropertyResult("validUntil","ValidUntil",properties.ValidUntil!=null?cfn_parse().FromCloudFormation.getString(properties.ValidUntil):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleetPropsValidator(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("spotFleetRequestConfigData",cdk().requiredValidator)(properties.spotFleetRequestConfigData)),errors.collect(cdk().propertyValidator("spotFleetRequestConfigData",CfnSpotFleetSpotFleetRequestConfigDataPropertyValidator)(properties.spotFleetRequestConfigData)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnSpotFleetProps"')}function convertCfnSpotFleetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSpotFleetPropsValidator(properties).assertSuccess(),{SpotFleetRequestConfigData:convertCfnSpotFleetSpotFleetRequestConfigDataPropertyToCloudFormation(properties.spotFleetRequestConfigData),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnSpotFleetPropsFromCloudFormation(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("spotFleetRequestConfigData","SpotFleetRequestConfigData",properties.SpotFleetRequestConfigData!=null?CfnSpotFleetSpotFleetRequestConfigDataPropertyFromCloudFormation(properties.SpotFleetRequestConfigData):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 CfnSubnet extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnet",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::Subnet";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSubnet(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 isCfnSubnet(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSubnet.CFN_RESOURCE_TYPE_NAME}static fromSubnetId(scope,id,subnetId){class Import extends cdk().Resource{subnetRef;constructor(scope2,id2,subnetId2){super(scope2,id2),this.subnetRef={subnetId:subnetId2}}}return new Import(scope,id,subnetId)}static arnForSubnet(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ISubnetRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForSubnet),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:subnet/${SubnetId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,SubnetId:resource.subnetRef.subnetId})}_assignIpv6AddressOnCreation;_availabilityZone;_availabilityZoneId;_cidrBlock;_enableDns64;_enableLniAtDeviceIndex;_ipv4IpamPoolId;_ipv4NetmaskLength;_ipv6CidrBlock;_ipv6IpamPoolId;_ipv6Native;_ipv6NetmaskLength;_mapPublicIpOnLaunch;_outpostArn;_privateDnsNameOptionsOnLaunch;tags;_tagsRaw;_vpcId;cfnPropertyNames={assignIpv6AddressOnCreation:"AssignIpv6AddressOnCreation",availabilityZone:"AvailabilityZone",availabilityZoneId:"AvailabilityZoneId",cidrBlock:"CidrBlock",enableDns64:"EnableDns64",enableLniAtDeviceIndex:"EnableLniAtDeviceIndex",ipv4IpamPoolId:"Ipv4IpamPoolId",ipv4NetmaskLength:"Ipv4NetmaskLength",ipv6CidrBlock:"Ipv6CidrBlock",ipv6IpamPoolId:"Ipv6IpamPoolId",ipv6Native:"Ipv6Native",ipv6NetmaskLength:"Ipv6NetmaskLength",mapPublicIpOnLaunch:"MapPublicIpOnLaunch",outpostArn:"OutpostArn",privateDnsNameOptionsOnLaunch:"PrivateDnsNameOptionsOnLaunch",tags:"Tags",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnSubnet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnSubnetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnet),error}cdk().requireProperty(props,"vpcId",this),this._assignIpv6AddressOnCreation=props.assignIpv6AddressOnCreation,this._availabilityZone=props.availabilityZone,this._availabilityZoneId=props.availabilityZoneId,this._cidrBlock=props.cidrBlock,this._enableDns64=props.enableDns64,this._enableLniAtDeviceIndex=props.enableLniAtDeviceIndex,this._ipv4IpamPoolId=props.ipv4IpamPoolId,this._ipv4NetmaskLength=props.ipv4NetmaskLength,this._ipv6CidrBlock=props.ipv6CidrBlock,this._ipv6IpamPoolId=props.ipv6IpamPoolId,this._ipv6Native=props.ipv6Native,this._ipv6NetmaskLength=props.ipv6NetmaskLength,this._mapPublicIpOnLaunch=props.mapPublicIpOnLaunch,this._outpostArn=props.outpostArn,this._privateDnsNameOptionsOnLaunch=props.privateDnsNameOptionsOnLaunch,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::Subnet",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get subnetRef(){return{subnetId:this.ref}}get assignIpv6AddressOnCreation(){return this._assignIpv6AddressOnCreation}set assignIpv6AddressOnCreation(value){cdk().traceProperty(this.node,"AssignIpv6AddressOnCreation"),this._assignIpv6AddressOnCreation=value}get availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get availabilityZoneId(){return this._availabilityZoneId}set availabilityZoneId(value){cdk().traceProperty(this.node,"AvailabilityZoneId"),this._availabilityZoneId=value}get cidrBlock(){return this._cidrBlock}set cidrBlock(value){cdk().traceProperty(this.node,"CidrBlock"),this._cidrBlock=value}get enableDns64(){return this._enableDns64}set enableDns64(value){cdk().traceProperty(this.node,"EnableDns64"),this._enableDns64=value}get enableLniAtDeviceIndex(){return this._enableLniAtDeviceIndex}set enableLniAtDeviceIndex(value){cdk().traceProperty(this.node,"EnableLniAtDeviceIndex"),this._enableLniAtDeviceIndex=value}get ipv4IpamPoolId(){return this._ipv4IpamPoolId}set ipv4IpamPoolId(value){cdk().traceProperty(this.node,"Ipv4IpamPoolId"),this._ipv4IpamPoolId=value}get ipv4NetmaskLength(){return this._ipv4NetmaskLength}set ipv4NetmaskLength(value){cdk().traceProperty(this.node,"Ipv4NetmaskLength"),this._ipv4NetmaskLength=value}get ipv6CidrBlock(){return this._ipv6CidrBlock}set ipv6CidrBlock(value){cdk().traceProperty(this.node,"Ipv6CidrBlock"),this._ipv6CidrBlock=value}get ipv6IpamPoolId(){return this._ipv6IpamPoolId}set ipv6IpamPoolId(value){cdk().traceProperty(this.node,"Ipv6IpamPoolId"),this._ipv6IpamPoolId=value}get ipv6Native(){return this._ipv6Native}set ipv6Native(value){cdk().traceProperty(this.node,"Ipv6Native"),this._ipv6Native=value}get ipv6NetmaskLength(){return this._ipv6NetmaskLength}set ipv6NetmaskLength(value){cdk().traceProperty(this.node,"Ipv6NetmaskLength"),this._ipv6NetmaskLength=value}get mapPublicIpOnLaunch(){return this._mapPublicIpOnLaunch}set mapPublicIpOnLaunch(value){cdk().traceProperty(this.node,"MapPublicIpOnLaunch"),this._mapPublicIpOnLaunch=value}get outpostArn(){return this._outpostArn}set outpostArn(value){cdk().traceProperty(this.node,"OutpostArn"),this._outpostArn=value}get privateDnsNameOptionsOnLaunch(){return this._privateDnsNameOptionsOnLaunch}set privateDnsNameOptionsOnLaunch(value){cdk().traceProperty(this.node,"PrivateDnsNameOptionsOnLaunch"),this._privateDnsNameOptionsOnLaunch=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrAvailabilityZone(){return cdk().Token.asString(this.getAtt("AvailabilityZone",cdk().ResolutionTypeHint.STRING))}get attrAvailabilityZoneId(){return cdk().Token.asString(this.getAtt("AvailabilityZoneId",cdk().ResolutionTypeHint.STRING))}get attrBlockPublicAccessStates(){return this.getAtt("BlockPublicAccessStates")}get attrCidrBlock(){return cdk().Token.asString(this.getAtt("CidrBlock",cdk().ResolutionTypeHint.STRING))}get attrIpv6CidrBlocks(){return cdk().Token.asList(this.getAtt("Ipv6CidrBlocks",cdk().ResolutionTypeHint.STRING_LIST))}get attrNetworkAclAssociationId(){return cdk().Token.asString(this.getAtt("NetworkAclAssociationId",cdk().ResolutionTypeHint.STRING))}get attrOutpostArn(){return cdk().Token.asString(this.getAtt("OutpostArn",cdk().ResolutionTypeHint.STRING))}get attrSubnetId(){return cdk().Token.asString(this.getAtt("SubnetId",cdk().ResolutionTypeHint.STRING))}get attrVpcId(){return cdk().Token.asString(this.getAtt("VpcId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{assignIpv6AddressOnCreation:this._assignIpv6AddressOnCreation,availabilityZone:this._availabilityZone,availabilityZoneId:this._availabilityZoneId,cidrBlock:this._cidrBlock,enableDns64:this._enableDns64,enableLniAtDeviceIndex:this._enableLniAtDeviceIndex,ipv4IpamPoolId:this._ipv4IpamPoolId,ipv4NetmaskLength:this._ipv4NetmaskLength,ipv6CidrBlock:this._ipv6CidrBlock,ipv6IpamPoolId:this._ipv6IpamPoolId,ipv6Native:this._ipv6Native,ipv6NetmaskLength:this._ipv6NetmaskLength,mapPublicIpOnLaunch:this._mapPublicIpOnLaunch,outpostArn:this._outpostArn,privateDnsNameOptionsOnLaunch:this._privateDnsNameOptionsOnLaunch,tags:this.tags.renderTags(),vpcId:this._vpcId}}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",CfnSubnet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSubnetPropsToCloudFormation(props)}}exports.CfnSubnet=CfnSubnet;function CfnSubnetPrivateDnsNameOptionsOnLaunchPropertyValidator(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("enableResourceNameDnsAaaaRecord",cdk().validateBoolean)(properties.enableResourceNameDnsAaaaRecord)),errors.collect(cdk().propertyValidator("enableResourceNameDnsARecord",cdk().validateBoolean)(properties.enableResourceNameDnsARecord)),errors.collect(cdk().propertyValidator("hostnameType",cdk().validateString)(properties.hostnameType)),errors.wrap('supplied properties not correct for "PrivateDnsNameOptionsOnLaunchProperty"')}function convertCfnSubnetPrivateDnsNameOptionsOnLaunchPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSubnetPrivateDnsNameOptionsOnLaunchPropertyValidator(properties).assertSuccess(),{EnableResourceNameDnsAAAARecord:cdk().booleanToCloudFormation(properties.enableResourceNameDnsAaaaRecord),EnableResourceNameDnsARecord:cdk().booleanToCloudFormation(properties.enableResourceNameDnsARecord),HostnameType:cdk().stringToCloudFormation(properties.hostnameType)}):properties}function CfnSubnetPrivateDnsNameOptionsOnLaunchPropertyFromCloudFormation(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("enableResourceNameDnsAaaaRecord","EnableResourceNameDnsAAAARecord",properties.EnableResourceNameDnsAAAARecord!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableResourceNameDnsAAAARecord):void 0),ret.addPropertyResult("enableResourceNameDnsARecord","EnableResourceNameDnsARecord",properties.EnableResourceNameDnsARecord!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableResourceNameDnsARecord):void 0),ret.addPropertyResult("hostnameType","HostnameType",properties.HostnameType!=null?cfn_parse().FromCloudFormation.getString(properties.HostnameType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSubnetBlockPublicAccessStatesPropertyValidator(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("internetGatewayBlockMode",cdk().validateString)(properties.internetGatewayBlockMode)),errors.wrap('supplied properties not correct for "BlockPublicAccessStatesProperty"')}function convertCfnSubnetBlockPublicAccessStatesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSubnetBlockPublicAccessStatesPropertyValidator(properties).assertSuccess(),{InternetGatewayBlockMode:cdk().stringToCloudFormation(properties.internetGatewayBlockMode)}):properties}function CfnSubnetBlockPublicAccessStatesPropertyFromCloudFormation(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("internetGatewayBlockMode","InternetGatewayBlockMode",properties.InternetGatewayBlockMode!=null?cfn_parse().FromCloudFormation.getString(properties.InternetGatewayBlockMode):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSubnetPropsValidator(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("assignIpv6AddressOnCreation",cdk().validateBoolean)(properties.assignIpv6AddressOnCreation)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("availabilityZoneId",cdk().validateString)(properties.availabilityZoneId)),errors.collect(cdk().propertyValidator("cidrBlock",cdk().validateString)(properties.cidrBlock)),errors.collect(cdk().propertyValidator("enableDns64",cdk().validateBoolean)(properties.enableDns64)),errors.collect(cdk().propertyValidator("enableLniAtDeviceIndex",cdk().validateNumber)(properties.enableLniAtDeviceIndex)),errors.collect(cdk().propertyValidator("ipv4IpamPoolId",cdk().validateString)(properties.ipv4IpamPoolId)),errors.collect(cdk().propertyValidator("ipv4NetmaskLength",cdk().validateNumber)(properties.ipv4NetmaskLength)),errors.collect(cdk().propertyValidator("ipv6CidrBlock",cdk().validateString)(properties.ipv6CidrBlock)),errors.collect(cdk().propertyValidator("ipv6IpamPoolId",cdk().validateString)(properties.ipv6IpamPoolId)),errors.collect(cdk().propertyValidator("ipv6Native",cdk().validateBoolean)(properties.ipv6Native)),errors.collect(cdk().propertyValidator("ipv6NetmaskLength",cdk().validateNumber)(properties.ipv6NetmaskLength)),errors.collect(cdk().propertyValidator("mapPublicIpOnLaunch",cdk().validateBoolean)(properties.mapPublicIpOnLaunch)),errors.collect(cdk().propertyValidator("outpostArn",cdk().validateString)(properties.outpostArn)),errors.collect(cdk().propertyValidator("privateDnsNameOptionsOnLaunch",cdk().validateObject)(properties.privateDnsNameOptionsOnLaunch)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnSubnetProps"')}function convertCfnSubnetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSubnetPropsValidator(properties).assertSuccess(),{AssignIpv6AddressOnCreation:cdk().booleanToCloudFormation(properties.assignIpv6AddressOnCreation),AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk().stringToCloudFormation(properties.availabilityZoneId),CidrBlock:cdk().stringToCloudFormation(properties.cidrBlock),EnableDns64:cdk().booleanToCloudFormation(properties.enableDns64),EnableLniAtDeviceIndex:cdk().numberToCloudFormation(properties.enableLniAtDeviceIndex),Ipv4IpamPoolId:cdk().stringToCloudFormation(properties.ipv4IpamPoolId),Ipv4NetmaskLength:cdk().numberToCloudFormation(properties.ipv4NetmaskLength),Ipv6CidrBlock:cdk().stringToCloudFormation(properties.ipv6CidrBlock),Ipv6IpamPoolId:cdk().stringToCloudFormation(properties.ipv6IpamPoolId),Ipv6Native:cdk().booleanToCloudFormation(properties.ipv6Native),Ipv6NetmaskLength:cdk().numberToCloudFormation(properties.ipv6NetmaskLength),MapPublicIpOnLaunch:cdk().booleanToCloudFormation(properties.mapPublicIpOnLaunch),OutpostArn:cdk().stringToCloudFormation(properties.outpostArn),PrivateDnsNameOptionsOnLaunch:cdk().objectToCloudFormation(properties.privateDnsNameOptionsOnLaunch),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnSubnetPropsFromCloudFormation(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("assignIpv6AddressOnCreation","AssignIpv6AddressOnCreation",properties.AssignIpv6AddressOnCreation!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AssignIpv6AddressOnCreation):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addPropertyResult("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("enableDns64","EnableDns64",properties.EnableDns64!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableDns64):void 0),ret.addPropertyResult("enableLniAtDeviceIndex","EnableLniAtDeviceIndex",properties.EnableLniAtDeviceIndex!=null?cfn_parse().FromCloudFormation.getNumber(properties.EnableLniAtDeviceIndex):void 0),ret.addPropertyResult("ipv4IpamPoolId","Ipv4IpamPoolId",properties.Ipv4IpamPoolId!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv4IpamPoolId):void 0),ret.addPropertyResult("ipv4NetmaskLength","Ipv4NetmaskLength",properties.Ipv4NetmaskLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv4NetmaskLength):void 0),ret.addPropertyResult("ipv6CidrBlock","Ipv6CidrBlock",properties.Ipv6CidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6CidrBlock):void 0),ret.addPropertyResult("ipv6IpamPoolId","Ipv6IpamPoolId",properties.Ipv6IpamPoolId!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6IpamPoolId):void 0),ret.addPropertyResult("ipv6Native","Ipv6Native",properties.Ipv6Native!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Ipv6Native):void 0),ret.addPropertyResult("ipv6NetmaskLength","Ipv6NetmaskLength",properties.Ipv6NetmaskLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6NetmaskLength):void 0),ret.addPropertyResult("mapPublicIpOnLaunch","MapPublicIpOnLaunch",properties.MapPublicIpOnLaunch!=null?cfn_parse().FromCloudFormation.getBoolean(properties.MapPublicIpOnLaunch):void 0),ret.addPropertyResult("outpostArn","OutpostArn",properties.OutpostArn!=null?cfn_parse().FromCloudFormation.getString(properties.OutpostArn):void 0),ret.addPropertyResult("privateDnsNameOptionsOnLaunch","PrivateDnsNameOptionsOnLaunch",properties.PrivateDnsNameOptionsOnLaunch!=null?cfn_parse().FromCloudFormation.getAny(properties.PrivateDnsNameOptionsOnLaunch):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSubnetCidrBlock extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnetCidrBlock",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::SubnetCidrBlock";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetCidrBlockPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSubnetCidrBlock(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 isCfnSubnetCidrBlock(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSubnetCidrBlock.CFN_RESOURCE_TYPE_NAME}_ipv6CidrBlock;_ipv6IpamPoolId;_ipv6NetmaskLength;_subnetId;cfnPropertyNames={ipv6CidrBlock:"Ipv6CidrBlock",ipv6IpamPoolId:"Ipv6IpamPoolId",ipv6NetmaskLength:"Ipv6NetmaskLength",subnetId:"SubnetId"};constructor(scope,id,props){super(scope,id,{type:CfnSubnetCidrBlock.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnSubnetCidrBlockProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnetCidrBlock),error}cdk().requireProperty(props,"subnetId",this),this._ipv6CidrBlock=props.ipv6CidrBlock,this._ipv6IpamPoolId=props.ipv6IpamPoolId,this._ipv6NetmaskLength=props.ipv6NetmaskLength,this._subnetId=cdk().getRefProperty(props.subnetId?.subnetRef,"subnetId")??cdk().ensureStringOrUndefined(props.subnetId,"subnetId","ec2.ISubnetRef | string")}get subnetCidrBlockRef(){return{subnetCidrBlockId:this.ref}}get ipv6CidrBlock(){return this._ipv6CidrBlock}set ipv6CidrBlock(value){cdk().traceProperty(this.node,"Ipv6CidrBlock"),this._ipv6CidrBlock=value}get ipv6IpamPoolId(){return this._ipv6IpamPoolId}set ipv6IpamPoolId(value){cdk().traceProperty(this.node,"Ipv6IpamPoolId"),this._ipv6IpamPoolId=value}get ipv6NetmaskLength(){return this._ipv6NetmaskLength}set ipv6NetmaskLength(value){cdk().traceProperty(this.node,"Ipv6NetmaskLength"),this._ipv6NetmaskLength=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrIpSource(){return cdk().Token.asString(this.getAtt("IpSource",cdk().ResolutionTypeHint.STRING))}get attrIpv6AddressAttribute(){return cdk().Token.asString(this.getAtt("Ipv6AddressAttribute",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{ipv6CidrBlock:this._ipv6CidrBlock,ipv6IpamPoolId:this._ipv6IpamPoolId,ipv6NetmaskLength:this._ipv6NetmaskLength,subnetId:this._subnetId}}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",CfnSubnetCidrBlock.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSubnetCidrBlockPropsToCloudFormation(props)}}exports.CfnSubnetCidrBlock=CfnSubnetCidrBlock;function CfnSubnetCidrBlockPropsValidator(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("ipv6CidrBlock",cdk().validateString)(properties.ipv6CidrBlock)),errors.collect(cdk().propertyValidator("ipv6IpamPoolId",cdk().validateString)(properties.ipv6IpamPoolId)),errors.collect(cdk().propertyValidator("ipv6NetmaskLength",cdk().validateNumber)(properties.ipv6NetmaskLength)),errors.collect(cdk().propertyValidator("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnSubnetCidrBlockProps"')}function convertCfnSubnetCidrBlockPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSubnetCidrBlockPropsValidator(properties).assertSuccess(),{Ipv6CidrBlock:cdk().stringToCloudFormation(properties.ipv6CidrBlock),Ipv6IpamPoolId:cdk().stringToCloudFormation(properties.ipv6IpamPoolId),Ipv6NetmaskLength:cdk().numberToCloudFormation(properties.ipv6NetmaskLength),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnSubnetCidrBlockPropsFromCloudFormation(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("ipv6CidrBlock","Ipv6CidrBlock",properties.Ipv6CidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6CidrBlock):void 0),ret.addPropertyResult("ipv6IpamPoolId","Ipv6IpamPoolId",properties.Ipv6IpamPoolId!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6IpamPoolId):void 0),ret.addPropertyResult("ipv6NetmaskLength","Ipv6NetmaskLength",properties.Ipv6NetmaskLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6NetmaskLength):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSubnetNetworkAclAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnetNetworkAclAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::SubnetNetworkAclAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetNetworkAclAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSubnetNetworkAclAssociation(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 isCfnSubnetNetworkAclAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSubnetNetworkAclAssociation.CFN_RESOURCE_TYPE_NAME}_networkAclId;_subnetId;cfnPropertyNames={networkAclId:"NetworkAclId",subnetId:"SubnetId"};constructor(scope,id,props){super(scope,id,{type:CfnSubnetNetworkAclAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnSubnetNetworkAclAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnetNetworkAclAssociation),error}cdk().requireProperty(props,"networkAclId",this),cdk().requireProperty(props,"subnetId",this),this._networkAclId=cdk().getRefProperty(props.networkAclId?.networkAclRef,"networkAclId")??cdk().ensureStringOrUndefined(props.networkAclId,"networkAclId","ec2.INetworkAclRef | string"),this._subnetId=cdk().getRefProperty(props.subnetId?.subnetRef,"subnetId")??cdk().ensureStringOrUndefined(props.subnetId,"subnetId","ec2.ISubnetRef | string")}get subnetNetworkAclAssociationRef(){return{associationId:this.ref}}get networkAclId(){return this._networkAclId}set networkAclId(value){cdk().traceProperty(this.node,"NetworkAclId"),this._networkAclId=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get attrAssociationId(){return cdk().Token.asString(this.getAtt("AssociationId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{networkAclId:this._networkAclId,subnetId:this._subnetId}}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",CfnSubnetNetworkAclAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSubnetNetworkAclAssociationPropsToCloudFormation(props)}}exports.CfnSubnetNetworkAclAssociation=CfnSubnetNetworkAclAssociation;function CfnSubnetNetworkAclAssociationPropsValidator(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("networkAclId",cdk().requiredValidator)(properties.networkAclId)),errors.collect(cdk().propertyValidator("networkAclId",cdk().validateString)(properties.networkAclId)),errors.collect(cdk().propertyValidator("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnSubnetNetworkAclAssociationProps"')}function convertCfnSubnetNetworkAclAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSubnetNetworkAclAssociationPropsValidator(properties).assertSuccess(),{NetworkAclId:cdk().stringToCloudFormation(properties.networkAclId),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnSubnetNetworkAclAssociationPropsFromCloudFormation(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("networkAclId","NetworkAclId",properties.NetworkAclId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkAclId):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSubnetRouteTableAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::SubnetRouteTableAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetRouteTableAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSubnetRouteTableAssociation(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 isCfnSubnetRouteTableAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSubnetRouteTableAssociation.CFN_RESOURCE_TYPE_NAME}_routeTableId;_subnetId;cfnPropertyNames={routeTableId:"RouteTableId",subnetId:"SubnetId"};constructor(scope,id,props){super(scope,id,{type:CfnSubnetRouteTableAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnSubnetRouteTableAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnetRouteTableAssociation),error}cdk().requireProperty(props,"routeTableId",this),cdk().requireProperty(props,"subnetId",this),this._routeTableId=cdk().getRefProperty(props.routeTableId?.routeTableRef,"routeTableId")??cdk().ensureStringOrUndefined(props.routeTableId,"routeTableId","ec2.IRouteTableRef | string"),this._subnetId=cdk().getRefProperty(props.subnetId?.subnetRef,"subnetId")??cdk().ensureStringOrUndefined(props.subnetId,"subnetId","ec2.ISubnetRef | string")}get subnetRouteTableAssociationRef(){return{subnetRouteTableAssociationId:this.ref}}get routeTableId(){return this._routeTableId}set routeTableId(value){cdk().traceProperty(this.node,"RouteTableId"),this._routeTableId=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{routeTableId:this._routeTableId,subnetId:this._subnetId}}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",CfnSubnetRouteTableAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSubnetRouteTableAssociationPropsToCloudFormation(props)}}exports.CfnSubnetRouteTableAssociation=CfnSubnetRouteTableAssociation;function CfnSubnetRouteTableAssociationPropsValidator(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("routeTableId",cdk().requiredValidator)(properties.routeTableId)),errors.collect(cdk().propertyValidator("routeTableId",cdk().validateString)(properties.routeTableId)),errors.collect(cdk().propertyValidator("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnSubnetRouteTableAssociationProps"')}function convertCfnSubnetRouteTableAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSubnetRouteTableAssociationPropsValidator(properties).assertSuccess(),{RouteTableId:cdk().stringToCloudFormation(properties.routeTableId),SubnetId:cdk().stringToCloudFormation(properties.subnetId)}):properties}function CfnSubnetRouteTableAssociationPropsFromCloudFormation(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("routeTableId","RouteTableId",properties.RouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.RouteTableId):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTrafficMirrorFilter extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorFilter",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorFilter";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorFilterPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTrafficMirrorFilter(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 isCfnTrafficMirrorFilter(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTrafficMirrorFilter.CFN_RESOURCE_TYPE_NAME}static fromTrafficMirrorFilterId(scope,id,trafficMirrorFilterId){class Import extends cdk().Resource{trafficMirrorFilterRef;constructor(scope2,id2,trafficMirrorFilterId2){super(scope2,id2),this.trafficMirrorFilterRef={trafficMirrorFilterId:trafficMirrorFilterId2}}}return new Import(scope,id,trafficMirrorFilterId)}static arnForTrafficMirrorFilter(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ITrafficMirrorFilterRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTrafficMirrorFilter),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-filter/${TrafficMirrorFilterId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,TrafficMirrorFilterId:resource.trafficMirrorFilterRef.trafficMirrorFilterId})}_description;_networkServices;tags;_tagsRaw;cfnPropertyNames={description:"Description",networkServices:"NetworkServices",tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnTrafficMirrorFilter.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTrafficMirrorFilterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorFilter),error}this._description=props.description,this._networkServices=props.networkServices,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TrafficMirrorFilter",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get trafficMirrorFilterRef(){return{trafficMirrorFilterId:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get networkServices(){return this._networkServices}set networkServices(value){cdk().traceProperty(this.node,"NetworkServices"),this._networkServices=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,networkServices:this._networkServices,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",CfnTrafficMirrorFilter.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTrafficMirrorFilterPropsToCloudFormation(props)}}exports.CfnTrafficMirrorFilter=CfnTrafficMirrorFilter;function CfnTrafficMirrorFilterPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("networkServices",cdk().listValidator(cdk().validateString))(properties.networkServices)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorFilterProps"')}function convertCfnTrafficMirrorFilterPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTrafficMirrorFilterPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),NetworkServices:cdk().listMapper(cdk().stringToCloudFormation)(properties.networkServices),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTrafficMirrorFilterPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("networkServices","NetworkServices",properties.NetworkServices!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.NetworkServices):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 CfnTrafficMirrorFilterRule extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorFilterRule",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorFilterRule";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorFilterRulePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTrafficMirrorFilterRule(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 isCfnTrafficMirrorFilterRule(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTrafficMirrorFilterRule.CFN_RESOURCE_TYPE_NAME}static fromTrafficMirrorFilterRuleId(scope,id,trafficMirrorFilterRuleId){class Import extends cdk().Resource{trafficMirrorFilterRuleRef;constructor(scope2,id2,trafficMirrorFilterRuleId2){super(scope2,id2),this.trafficMirrorFilterRuleRef={trafficMirrorFilterRuleId:trafficMirrorFilterRuleId2}}}return new Import(scope,id,trafficMirrorFilterRuleId)}static arnForTrafficMirrorFilterRule(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ITrafficMirrorFilterRuleRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTrafficMirrorFilterRule),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-filter-rule/${TrafficMirrorFilterRuleId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,TrafficMirrorFilterRuleId:resource.trafficMirrorFilterRuleRef.trafficMirrorFilterRuleId})}cdkTagManager;_description;_destinationCidrBlock;_destinationPortRange;_protocol;_ruleAction;_ruleNumber;_sourceCidrBlock;_sourcePortRange;_tags;_trafficDirection;_trafficMirrorFilterId;cfnPropertyNames={tags:"Tags",description:"Description",destinationCidrBlock:"DestinationCidrBlock",destinationPortRange:"DestinationPortRange",protocol:"Protocol",ruleAction:"RuleAction",ruleNumber:"RuleNumber",sourceCidrBlock:"SourceCidrBlock",sourcePortRange:"SourcePortRange",trafficDirection:"TrafficDirection",trafficMirrorFilterId:"TrafficMirrorFilterId"};constructor(scope,id,props){super(scope,id,{type:CfnTrafficMirrorFilterRule.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTrafficMirrorFilterRuleProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorFilterRule),error}cdk().requireProperty(props,"destinationCidrBlock",this),cdk().requireProperty(props,"ruleAction",this),cdk().requireProperty(props,"ruleNumber",this),cdk().requireProperty(props,"sourceCidrBlock",this),cdk().requireProperty(props,"trafficDirection",this),cdk().requireProperty(props,"trafficMirrorFilterId",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TrafficMirrorFilterRule",void 0,{tagPropertyName:"tags"}),this._description=props.description,this._destinationCidrBlock=props.destinationCidrBlock,this._destinationPortRange=props.destinationPortRange,this._protocol=props.protocol,this._ruleAction=props.ruleAction,this._ruleNumber=props.ruleNumber,this._sourceCidrBlock=props.sourceCidrBlock,this._sourcePortRange=props.sourcePortRange,this._tags=props.tags,this._trafficDirection=props.trafficDirection,this._trafficMirrorFilterId=props.trafficMirrorFilterId}get trafficMirrorFilterRuleRef(){return{trafficMirrorFilterRuleId:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get destinationCidrBlock(){return this._destinationCidrBlock}set destinationCidrBlock(value){cdk().traceProperty(this.node,"DestinationCidrBlock"),this._destinationCidrBlock=value}get destinationPortRange(){return this._destinationPortRange}set destinationPortRange(value){cdk().traceProperty(this.node,"DestinationPortRange"),this._destinationPortRange=value}get protocol(){return this._protocol}set protocol(value){cdk().traceProperty(this.node,"Protocol"),this._protocol=value}get ruleAction(){return this._ruleAction}set ruleAction(value){cdk().traceProperty(this.node,"RuleAction"),this._ruleAction=value}get ruleNumber(){return this._ruleNumber}set ruleNumber(value){cdk().traceProperty(this.node,"RuleNumber"),this._ruleNumber=value}get sourceCidrBlock(){return this._sourceCidrBlock}set sourceCidrBlock(value){cdk().traceProperty(this.node,"SourceCidrBlock"),this._sourceCidrBlock=value}get sourcePortRange(){return this._sourcePortRange}set sourcePortRange(value){cdk().traceProperty(this.node,"SourcePortRange"),this._sourcePortRange=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get trafficDirection(){return this._trafficDirection}set trafficDirection(value){cdk().traceProperty(this.node,"TrafficDirection"),this._trafficDirection=value}get trafficMirrorFilterId(){return this._trafficMirrorFilterId}set trafficMirrorFilterId(value){cdk().traceProperty(this.node,"TrafficMirrorFilterId"),this._trafficMirrorFilterId=value}get attrTrafficMirrorFilterRuleId(){return cdk().Token.asString(this.getAtt("TrafficMirrorFilterRuleId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),description:this._description,destinationCidrBlock:this._destinationCidrBlock,destinationPortRange:this._destinationPortRange,protocol:this._protocol,ruleAction:this._ruleAction,ruleNumber:this._ruleNumber,sourceCidrBlock:this._sourceCidrBlock,sourcePortRange:this._sourcePortRange,trafficDirection:this._trafficDirection,trafficMirrorFilterId:this._trafficMirrorFilterId}}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",CfnTrafficMirrorFilterRule.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTrafficMirrorFilterRulePropsToCloudFormation(props)}}exports.CfnTrafficMirrorFilterRule=CfnTrafficMirrorFilterRule;function CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyValidator(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("fromPort",cdk().requiredValidator)(properties.fromPort)),errors.collect(cdk().propertyValidator("fromPort",cdk().validateNumber)(properties.fromPort)),errors.collect(cdk().propertyValidator("toPort",cdk().requiredValidator)(properties.toPort)),errors.collect(cdk().propertyValidator("toPort",cdk().validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "TrafficMirrorPortRangeProperty"')}function convertCfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyValidator(properties).assertSuccess(),{FromPort:cdk().numberToCloudFormation(properties.fromPort),ToPort:cdk().numberToCloudFormation(properties.toPort)}):properties}function CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyFromCloudFormation(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("fromPort","FromPort",properties.FromPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTrafficMirrorFilterRulePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("destinationCidrBlock",cdk().requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("destinationCidrBlock",cdk().validateString)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("destinationPortRange",CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyValidator)(properties.destinationPortRange)),errors.collect(cdk().propertyValidator("protocol",cdk().validateNumber)(properties.protocol)),errors.collect(cdk().propertyValidator("ruleAction",cdk().requiredValidator)(properties.ruleAction)),errors.collect(cdk().propertyValidator("ruleAction",cdk().validateString)(properties.ruleAction)),errors.collect(cdk().propertyValidator("ruleNumber",cdk().requiredValidator)(properties.ruleNumber)),errors.collect(cdk().propertyValidator("ruleNumber",cdk().validateNumber)(properties.ruleNumber)),errors.collect(cdk().propertyValidator("sourceCidrBlock",cdk().requiredValidator)(properties.sourceCidrBlock)),errors.collect(cdk().propertyValidator("sourceCidrBlock",cdk().validateString)(properties.sourceCidrBlock)),errors.collect(cdk().propertyValidator("sourcePortRange",CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyValidator)(properties.sourcePortRange)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("trafficDirection",cdk().requiredValidator)(properties.trafficDirection)),errors.collect(cdk().propertyValidator("trafficDirection",cdk().validateString)(properties.trafficDirection)),errors.collect(cdk().propertyValidator("trafficMirrorFilterId",cdk().requiredValidator)(properties.trafficMirrorFilterId)),errors.collect(cdk().propertyValidator("trafficMirrorFilterId",cdk().validateString)(properties.trafficMirrorFilterId)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorFilterRuleProps"')}function convertCfnTrafficMirrorFilterRulePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTrafficMirrorFilterRulePropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),DestinationCidrBlock:cdk().stringToCloudFormation(properties.destinationCidrBlock),DestinationPortRange:convertCfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyToCloudFormation(properties.destinationPortRange),Protocol:cdk().numberToCloudFormation(properties.protocol),RuleAction:cdk().stringToCloudFormation(properties.ruleAction),RuleNumber:cdk().numberToCloudFormation(properties.ruleNumber),SourceCidrBlock:cdk().stringToCloudFormation(properties.sourceCidrBlock),SourcePortRange:convertCfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyToCloudFormation(properties.sourcePortRange),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TrafficDirection:cdk().stringToCloudFormation(properties.trafficDirection),TrafficMirrorFilterId:cdk().stringToCloudFormation(properties.trafficMirrorFilterId)}):properties}function CfnTrafficMirrorFilterRulePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",properties.DestinationCidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationCidrBlock):void 0),ret.addPropertyResult("destinationPortRange","DestinationPortRange",properties.DestinationPortRange!=null?CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyFromCloudFormation(properties.DestinationPortRange):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getNumber(properties.Protocol):void 0),ret.addPropertyResult("ruleAction","RuleAction",properties.RuleAction!=null?cfn_parse().FromCloudFormation.getString(properties.RuleAction):void 0),ret.addPropertyResult("ruleNumber","RuleNumber",properties.RuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.RuleNumber):void 0),ret.addPropertyResult("sourceCidrBlock","SourceCidrBlock",properties.SourceCidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.SourceCidrBlock):void 0),ret.addPropertyResult("sourcePortRange","SourcePortRange",properties.SourcePortRange!=null?CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyFromCloudFormation(properties.SourcePortRange):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("trafficDirection","TrafficDirection",properties.TrafficDirection!=null?cfn_parse().FromCloudFormation.getString(properties.TrafficDirection):void 0),ret.addPropertyResult("trafficMirrorFilterId","TrafficMirrorFilterId",properties.TrafficMirrorFilterId!=null?cfn_parse().FromCloudFormation.getString(properties.TrafficMirrorFilterId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTrafficMirrorSession extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorSession",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorSession";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorSessionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTrafficMirrorSession(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 isCfnTrafficMirrorSession(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTrafficMirrorSession.CFN_RESOURCE_TYPE_NAME}static fromTrafficMirrorSessionId(scope,id,trafficMirrorSessionId){class Import extends cdk().Resource{trafficMirrorSessionRef;constructor(scope2,id2,trafficMirrorSessionId2){super(scope2,id2),this.trafficMirrorSessionRef={trafficMirrorSessionId:trafficMirrorSessionId2}}}return new Import(scope,id,trafficMirrorSessionId)}static arnForTrafficMirrorSession(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ITrafficMirrorSessionRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTrafficMirrorSession),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-session/${TrafficMirrorSessionId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,TrafficMirrorSessionId:resource.trafficMirrorSessionRef.trafficMirrorSessionId})}_description;_networkInterfaceId;_ownerId;_packetLength;_sessionNumber;tags;_tagsRaw;_trafficMirrorFilterId;_trafficMirrorTargetId;_virtualNetworkId;cfnPropertyNames={description:"Description",networkInterfaceId:"NetworkInterfaceId",ownerId:"OwnerId",packetLength:"PacketLength",sessionNumber:"SessionNumber",tags:"Tags",trafficMirrorFilterId:"TrafficMirrorFilterId",trafficMirrorTargetId:"TrafficMirrorTargetId",virtualNetworkId:"VirtualNetworkId"};constructor(scope,id,props){super(scope,id,{type:CfnTrafficMirrorSession.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTrafficMirrorSessionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorSession),error}cdk().requireProperty(props,"networkInterfaceId",this),cdk().requireProperty(props,"sessionNumber",this),cdk().requireProperty(props,"trafficMirrorFilterId",this),cdk().requireProperty(props,"trafficMirrorTargetId",this),this._description=props.description,this._networkInterfaceId=props.networkInterfaceId,this._ownerId=props.ownerId,this._packetLength=props.packetLength,this._sessionNumber=props.sessionNumber,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TrafficMirrorSession",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._trafficMirrorFilterId=props.trafficMirrorFilterId,this._trafficMirrorTargetId=props.trafficMirrorTargetId,this._virtualNetworkId=props.virtualNetworkId}get trafficMirrorSessionRef(){return{trafficMirrorSessionId:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get networkInterfaceId(){return this._networkInterfaceId}set networkInterfaceId(value){cdk().traceProperty(this.node,"NetworkInterfaceId"),this._networkInterfaceId=value}get ownerId(){return this._ownerId}set ownerId(value){cdk().traceProperty(this.node,"OwnerId"),this._ownerId=value}get packetLength(){return this._packetLength}set packetLength(value){cdk().traceProperty(this.node,"PacketLength"),this._packetLength=value}get sessionNumber(){return this._sessionNumber}set sessionNumber(value){cdk().traceProperty(this.node,"SessionNumber"),this._sessionNumber=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get trafficMirrorFilterId(){return this._trafficMirrorFilterId}set trafficMirrorFilterId(value){cdk().traceProperty(this.node,"TrafficMirrorFilterId"),this._trafficMirrorFilterId=value}get trafficMirrorTargetId(){return this._trafficMirrorTargetId}set trafficMirrorTargetId(value){cdk().traceProperty(this.node,"TrafficMirrorTargetId"),this._trafficMirrorTargetId=value}get virtualNetworkId(){return this._virtualNetworkId}set virtualNetworkId(value){cdk().traceProperty(this.node,"VirtualNetworkId"),this._virtualNetworkId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,networkInterfaceId:this._networkInterfaceId,ownerId:this._ownerId,packetLength:this._packetLength,sessionNumber:this._sessionNumber,tags:this.tags.renderTags(),trafficMirrorFilterId:this._trafficMirrorFilterId,trafficMirrorTargetId:this._trafficMirrorTargetId,virtualNetworkId:this._virtualNetworkId}}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",CfnTrafficMirrorSession.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTrafficMirrorSessionPropsToCloudFormation(props)}}exports.CfnTrafficMirrorSession=CfnTrafficMirrorSession;function CfnTrafficMirrorSessionPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("ownerId",cdk().validateString)(properties.ownerId)),errors.collect(cdk().propertyValidator("packetLength",cdk().validateNumber)(properties.packetLength)),errors.collect(cdk().propertyValidator("sessionNumber",cdk().requiredValidator)(properties.sessionNumber)),errors.collect(cdk().propertyValidator("sessionNumber",cdk().validateNumber)(properties.sessionNumber)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("trafficMirrorFilterId",cdk().requiredValidator)(properties.trafficMirrorFilterId)),errors.collect(cdk().propertyValidator("trafficMirrorFilterId",cdk().validateString)(properties.trafficMirrorFilterId)),errors.collect(cdk().propertyValidator("trafficMirrorTargetId",cdk().requiredValidator)(properties.trafficMirrorTargetId)),errors.collect(cdk().propertyValidator("trafficMirrorTargetId",cdk().validateString)(properties.trafficMirrorTargetId)),errors.collect(cdk().propertyValidator("virtualNetworkId",cdk().validateNumber)(properties.virtualNetworkId)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorSessionProps"')}function convertCfnTrafficMirrorSessionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTrafficMirrorSessionPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),OwnerId:cdk().stringToCloudFormation(properties.ownerId),PacketLength:cdk().numberToCloudFormation(properties.packetLength),SessionNumber:cdk().numberToCloudFormation(properties.sessionNumber),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TrafficMirrorFilterId:cdk().stringToCloudFormation(properties.trafficMirrorFilterId),TrafficMirrorTargetId:cdk().stringToCloudFormation(properties.trafficMirrorTargetId),VirtualNetworkId:cdk().numberToCloudFormation(properties.virtualNetworkId)}):properties}function CfnTrafficMirrorSessionPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("ownerId","OwnerId",properties.OwnerId!=null?cfn_parse().FromCloudFormation.getString(properties.OwnerId):void 0),ret.addPropertyResult("packetLength","PacketLength",properties.PacketLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.PacketLength):void 0),ret.addPropertyResult("sessionNumber","SessionNumber",properties.SessionNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.SessionNumber):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("trafficMirrorFilterId","TrafficMirrorFilterId",properties.TrafficMirrorFilterId!=null?cfn_parse().FromCloudFormation.getString(properties.TrafficMirrorFilterId):void 0),ret.addPropertyResult("trafficMirrorTargetId","TrafficMirrorTargetId",properties.TrafficMirrorTargetId!=null?cfn_parse().FromCloudFormation.getString(properties.TrafficMirrorTargetId):void 0),ret.addPropertyResult("virtualNetworkId","VirtualNetworkId",properties.VirtualNetworkId!=null?cfn_parse().FromCloudFormation.getNumber(properties.VirtualNetworkId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTrafficMirrorTarget extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorTarget",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorTarget";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorTargetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTrafficMirrorTarget(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 isCfnTrafficMirrorTarget(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTrafficMirrorTarget.CFN_RESOURCE_TYPE_NAME}static fromTrafficMirrorTargetId(scope,id,trafficMirrorTargetId){class Import extends cdk().Resource{trafficMirrorTargetRef;constructor(scope2,id2,trafficMirrorTargetId2){super(scope2,id2),this.trafficMirrorTargetRef={trafficMirrorTargetId:trafficMirrorTargetId2}}}return new Import(scope,id,trafficMirrorTargetId)}static arnForTrafficMirrorTarget(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ITrafficMirrorTargetRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTrafficMirrorTarget),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-target/${TrafficMirrorTargetId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,TrafficMirrorTargetId:resource.trafficMirrorTargetRef.trafficMirrorTargetId})}_description;_gatewayLoadBalancerEndpointId;_networkInterfaceId;_networkLoadBalancerArn;tags;_tagsRaw;cfnPropertyNames={description:"Description",gatewayLoadBalancerEndpointId:"GatewayLoadBalancerEndpointId",networkInterfaceId:"NetworkInterfaceId",networkLoadBalancerArn:"NetworkLoadBalancerArn",tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnTrafficMirrorTarget.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTrafficMirrorTargetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorTarget),error}this._description=props.description,this._gatewayLoadBalancerEndpointId=props.gatewayLoadBalancerEndpointId,this._networkInterfaceId=props.networkInterfaceId,this._networkLoadBalancerArn=props.networkLoadBalancerArn,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TrafficMirrorTarget",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get trafficMirrorTargetRef(){return{trafficMirrorTargetId:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get gatewayLoadBalancerEndpointId(){return this._gatewayLoadBalancerEndpointId}set gatewayLoadBalancerEndpointId(value){cdk().traceProperty(this.node,"GatewayLoadBalancerEndpointId"),this._gatewayLoadBalancerEndpointId=value}get networkInterfaceId(){return this._networkInterfaceId}set networkInterfaceId(value){cdk().traceProperty(this.node,"NetworkInterfaceId"),this._networkInterfaceId=value}get networkLoadBalancerArn(){return this._networkLoadBalancerArn}set networkLoadBalancerArn(value){cdk().traceProperty(this.node,"NetworkLoadBalancerArn"),this._networkLoadBalancerArn=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,gatewayLoadBalancerEndpointId:this._gatewayLoadBalancerEndpointId,networkInterfaceId:this._networkInterfaceId,networkLoadBalancerArn:this._networkLoadBalancerArn,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",CfnTrafficMirrorTarget.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTrafficMirrorTargetPropsToCloudFormation(props)}}exports.CfnTrafficMirrorTarget=CfnTrafficMirrorTarget;function CfnTrafficMirrorTargetPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("gatewayLoadBalancerEndpointId",cdk().validateString)(properties.gatewayLoadBalancerEndpointId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("networkLoadBalancerArn",cdk().validateString)(properties.networkLoadBalancerArn)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorTargetProps"')}function convertCfnTrafficMirrorTargetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTrafficMirrorTargetPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),GatewayLoadBalancerEndpointId:cdk().stringToCloudFormation(properties.gatewayLoadBalancerEndpointId),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),NetworkLoadBalancerArn:cdk().stringToCloudFormation(properties.networkLoadBalancerArn),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTrafficMirrorTargetPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("gatewayLoadBalancerEndpointId","GatewayLoadBalancerEndpointId",properties.GatewayLoadBalancerEndpointId!=null?cfn_parse().FromCloudFormation.getString(properties.GatewayLoadBalancerEndpointId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("networkLoadBalancerArn","NetworkLoadBalancerArn",properties.NetworkLoadBalancerArn!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkLoadBalancerArn):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 CfnTransitGateway extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGateway",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGateway";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGateway(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 isCfnTransitGateway(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGateway.CFN_RESOURCE_TYPE_NAME}static fromTransitGatewayArn(scope,id,arn){class Import extends cdk().Resource{transitGatewayRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:transit-gateway/${TransitGatewayId}").parse(arn2);this.transitGatewayRef={transitGatewayId:variables.TransitGatewayId,transitGatewayArn:arn2}}}return new Import(scope,id,arn)}static fromTransitGatewayId(scope,id,transitGatewayId){class Import extends cdk().Resource{transitGatewayRef;constructor(scope2,id2,transitGatewayId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:transit-gateway/${TransitGatewayId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,TransitGatewayId:transitGatewayId2});super(scope2,id2,{environmentFromArn:arn}),this.transitGatewayRef={transitGatewayId:transitGatewayId2,transitGatewayArn:arn}}}return new Import(scope,id,transitGatewayId)}static arnForTransitGateway(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ITransitGatewayRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTransitGateway),error}return resource.transitGatewayRef.transitGatewayArn}_amazonSideAsn;_associationDefaultRouteTableId;_autoAcceptSharedAttachments;_defaultRouteTableAssociation;_defaultRouteTablePropagation;_description;_dnsSupport;_encryptionSupport;_multicastSupport;_propagationDefaultRouteTableId;_securityGroupReferencingSupport;tags;_tagsRaw;_transitGatewayCidrBlocks;_vpnEcmpSupport;cfnPropertyNames={amazonSideAsn:"AmazonSideAsn",associationDefaultRouteTableId:"AssociationDefaultRouteTableId",autoAcceptSharedAttachments:"AutoAcceptSharedAttachments",defaultRouteTableAssociation:"DefaultRouteTableAssociation",defaultRouteTablePropagation:"DefaultRouteTablePropagation",description:"Description",dnsSupport:"DnsSupport",encryptionSupport:"EncryptionSupport",multicastSupport:"MulticastSupport",propagationDefaultRouteTableId:"PropagationDefaultRouteTableId",securityGroupReferencingSupport:"SecurityGroupReferencingSupport",tags:"Tags",transitGatewayCidrBlocks:"TransitGatewayCidrBlocks",vpnEcmpSupport:"VpnEcmpSupport"};constructor(scope,id,props={}){super(scope,id,{type:CfnTransitGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGateway),error}this._amazonSideAsn=props.amazonSideAsn,this._associationDefaultRouteTableId=props.associationDefaultRouteTableId,this._autoAcceptSharedAttachments=props.autoAcceptSharedAttachments,this._defaultRouteTableAssociation=props.defaultRouteTableAssociation,this._defaultRouteTablePropagation=props.defaultRouteTablePropagation,this._description=props.description,this._dnsSupport=props.dnsSupport,this._encryptionSupport=props.encryptionSupport,this._multicastSupport=props.multicastSupport,this._propagationDefaultRouteTableId=props.propagationDefaultRouteTableId,this._securityGroupReferencingSupport=props.securityGroupReferencingSupport,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TransitGateway",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transitGatewayCidrBlocks=props.transitGatewayCidrBlocks,this._vpnEcmpSupport=props.vpnEcmpSupport}get transitGatewayRef(){return{transitGatewayId:this.ref,transitGatewayArn:this.attrTransitGatewayArn}}get amazonSideAsn(){return this._amazonSideAsn}set amazonSideAsn(value){cdk().traceProperty(this.node,"AmazonSideAsn"),this._amazonSideAsn=value}get associationDefaultRouteTableId(){return this._associationDefaultRouteTableId}set associationDefaultRouteTableId(value){cdk().traceProperty(this.node,"AssociationDefaultRouteTableId"),this._associationDefaultRouteTableId=value}get autoAcceptSharedAttachments(){return this._autoAcceptSharedAttachments}set autoAcceptSharedAttachments(value){cdk().traceProperty(this.node,"AutoAcceptSharedAttachments"),this._autoAcceptSharedAttachments=value}get defaultRouteTableAssociation(){return this._defaultRouteTableAssociation}set defaultRouteTableAssociation(value){cdk().traceProperty(this.node,"DefaultRouteTableAssociation"),this._defaultRouteTableAssociation=value}get defaultRouteTablePropagation(){return this._defaultRouteTablePropagation}set defaultRouteTablePropagation(value){cdk().traceProperty(this.node,"DefaultRouteTablePropagation"),this._defaultRouteTablePropagation=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get dnsSupport(){return this._dnsSupport}set dnsSupport(value){cdk().traceProperty(this.node,"DnsSupport"),this._dnsSupport=value}get encryptionSupport(){return this._encryptionSupport}set encryptionSupport(value){cdk().traceProperty(this.node,"EncryptionSupport"),this._encryptionSupport=value}get multicastSupport(){return this._multicastSupport}set multicastSupport(value){cdk().traceProperty(this.node,"MulticastSupport"),this._multicastSupport=value}get propagationDefaultRouteTableId(){return this._propagationDefaultRouteTableId}set propagationDefaultRouteTableId(value){cdk().traceProperty(this.node,"PropagationDefaultRouteTableId"),this._propagationDefaultRouteTableId=value}get securityGroupReferencingSupport(){return this._securityGroupReferencingSupport}set securityGroupReferencingSupport(value){cdk().traceProperty(this.node,"SecurityGroupReferencingSupport"),this._securityGroupReferencingSupport=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transitGatewayCidrBlocks(){return this._transitGatewayCidrBlocks}set transitGatewayCidrBlocks(value){cdk().traceProperty(this.node,"TransitGatewayCidrBlocks"),this._transitGatewayCidrBlocks=value}get vpnEcmpSupport(){return this._vpnEcmpSupport}set vpnEcmpSupport(value){cdk().traceProperty(this.node,"VpnEcmpSupport"),this._vpnEcmpSupport=value}get attrEncryptionSupportState(){return cdk().Token.asString(this.getAtt("EncryptionSupportState",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayArn(){return cdk().Token.asString(this.getAtt("TransitGatewayArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{amazonSideAsn:this._amazonSideAsn,associationDefaultRouteTableId:this._associationDefaultRouteTableId,autoAcceptSharedAttachments:this._autoAcceptSharedAttachments,defaultRouteTableAssociation:this._defaultRouteTableAssociation,defaultRouteTablePropagation:this._defaultRouteTablePropagation,description:this._description,dnsSupport:this._dnsSupport,encryptionSupport:this._encryptionSupport,multicastSupport:this._multicastSupport,propagationDefaultRouteTableId:this._propagationDefaultRouteTableId,securityGroupReferencingSupport:this._securityGroupReferencingSupport,tags:this.tags.renderTags(),transitGatewayCidrBlocks:this._transitGatewayCidrBlocks,vpnEcmpSupport:this._vpnEcmpSupport}}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",CfnTransitGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayPropsToCloudFormation(props)}}exports.CfnTransitGateway=CfnTransitGateway;function CfnTransitGatewayPropsValidator(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("amazonSideAsn",cdk().validateNumber)(properties.amazonSideAsn)),errors.collect(cdk().propertyValidator("associationDefaultRouteTableId",cdk().validateString)(properties.associationDefaultRouteTableId)),errors.collect(cdk().propertyValidator("autoAcceptSharedAttachments",cdk().validateString)(properties.autoAcceptSharedAttachments)),errors.collect(cdk().propertyValidator("defaultRouteTableAssociation",cdk().validateString)(properties.defaultRouteTableAssociation)),errors.collect(cdk().propertyValidator("defaultRouteTablePropagation",cdk().validateString)(properties.defaultRouteTablePropagation)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("dnsSupport",cdk().validateString)(properties.dnsSupport)),errors.collect(cdk().propertyValidator("encryptionSupport",cdk().validateString)(properties.encryptionSupport)),errors.collect(cdk().propertyValidator("multicastSupport",cdk().validateString)(properties.multicastSupport)),errors.collect(cdk().propertyValidator("propagationDefaultRouteTableId",cdk().validateString)(properties.propagationDefaultRouteTableId)),errors.collect(cdk().propertyValidator("securityGroupReferencingSupport",cdk().validateString)(properties.securityGroupReferencingSupport)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayCidrBlocks",cdk().listValidator(cdk().validateString))(properties.transitGatewayCidrBlocks)),errors.collect(cdk().propertyValidator("vpnEcmpSupport",cdk().validateString)(properties.vpnEcmpSupport)),errors.wrap('supplied properties not correct for "CfnTransitGatewayProps"')}function convertCfnTransitGatewayPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayPropsValidator(properties).assertSuccess(),{AmazonSideAsn:cdk().numberToCloudFormation(properties.amazonSideAsn),AssociationDefaultRouteTableId:cdk().stringToCloudFormation(properties.associationDefaultRouteTableId),AutoAcceptSharedAttachments:cdk().stringToCloudFormation(properties.autoAcceptSharedAttachments),DefaultRouteTableAssociation:cdk().stringToCloudFormation(properties.defaultRouteTableAssociation),DefaultRouteTablePropagation:cdk().stringToCloudFormation(properties.defaultRouteTablePropagation),Description:cdk().stringToCloudFormation(properties.description),DnsSupport:cdk().stringToCloudFormation(properties.dnsSupport),EncryptionSupport:cdk().stringToCloudFormation(properties.encryptionSupport),MulticastSupport:cdk().stringToCloudFormation(properties.multicastSupport),PropagationDefaultRouteTableId:cdk().stringToCloudFormation(properties.propagationDefaultRouteTableId),SecurityGroupReferencingSupport:cdk().stringToCloudFormation(properties.securityGroupReferencingSupport),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayCidrBlocks:cdk().listMapper(cdk().stringToCloudFormation)(properties.transitGatewayCidrBlocks),VpnEcmpSupport:cdk().stringToCloudFormation(properties.vpnEcmpSupport)}):properties}function CfnTransitGatewayPropsFromCloudFormation(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("amazonSideAsn","AmazonSideAsn",properties.AmazonSideAsn!=null?cfn_parse().FromCloudFormation.getNumber(properties.AmazonSideAsn):void 0),ret.addPropertyResult("associationDefaultRouteTableId","AssociationDefaultRouteTableId",properties.AssociationDefaultRouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.AssociationDefaultRouteTableId):void 0),ret.addPropertyResult("autoAcceptSharedAttachments","AutoAcceptSharedAttachments",properties.AutoAcceptSharedAttachments!=null?cfn_parse().FromCloudFormation.getString(properties.AutoAcceptSharedAttachments):void 0),ret.addPropertyResult("defaultRouteTableAssociation","DefaultRouteTableAssociation",properties.DefaultRouteTableAssociation!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultRouteTableAssociation):void 0),ret.addPropertyResult("defaultRouteTablePropagation","DefaultRouteTablePropagation",properties.DefaultRouteTablePropagation!=null?cfn_parse().FromCloudFormation.getString(properties.DefaultRouteTablePropagation):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("dnsSupport","DnsSupport",properties.DnsSupport!=null?cfn_parse().FromCloudFormation.getString(properties.DnsSupport):void 0),ret.addPropertyResult("encryptionSupport","EncryptionSupport",properties.EncryptionSupport!=null?cfn_parse().FromCloudFormation.getString(properties.EncryptionSupport):void 0),ret.addPropertyResult("multicastSupport","MulticastSupport",properties.MulticastSupport!=null?cfn_parse().FromCloudFormation.getString(properties.MulticastSupport):void 0),ret.addPropertyResult("propagationDefaultRouteTableId","PropagationDefaultRouteTableId",properties.PropagationDefaultRouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.PropagationDefaultRouteTableId):void 0),ret.addPropertyResult("securityGroupReferencingSupport","SecurityGroupReferencingSupport",properties.SecurityGroupReferencingSupport!=null?cfn_parse().FromCloudFormation.getString(properties.SecurityGroupReferencingSupport):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayCidrBlocks","TransitGatewayCidrBlocks",properties.TransitGatewayCidrBlocks!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.TransitGatewayCidrBlocks):void 0),ret.addPropertyResult("vpnEcmpSupport","VpnEcmpSupport",properties.VpnEcmpSupport!=null?cfn_parse().FromCloudFormation.getString(properties.VpnEcmpSupport):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayAttachment(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 isCfnTransitGatewayAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayAttachment.CFN_RESOURCE_TYPE_NAME}static fromTransitGatewayAttachmentId(scope,id,transitGatewayAttachmentId){class Import extends cdk().Resource{transitGatewayAttachmentRef;constructor(scope2,id2,transitGatewayAttachmentId2){super(scope2,id2),this.transitGatewayAttachmentRef={transitGatewayAttachmentId:transitGatewayAttachmentId2}}}return new Import(scope,id,transitGatewayAttachmentId)}static arnForTransitGatewayAttachment(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ITransitGatewayAttachmentRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTransitGatewayAttachment),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-attachment/${TransitGatewayAttachmentId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,TransitGatewayAttachmentId:resource.transitGatewayAttachmentRef.transitGatewayAttachmentId})}_options;_subnetIds;tags;_tagsRaw;_transitGatewayId;_vpcId;cfnPropertyNames={options:"Options",subnetIds:"SubnetIds",tags:"Tags",transitGatewayId:"TransitGatewayId",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayAttachment),error}cdk().requireProperty(props,"subnetIds",this),cdk().requireProperty(props,"transitGatewayId",this),cdk().requireProperty(props,"vpcId",this),this._options=props.options,this._subnetIds=cdk().mapArrayInPlace(props.subnetIds,item=>cdk().getRefProperty(item?.subnetRef,"subnetId")??cdk().ensureStringOrUndefined(item,"subnetIds","ec2.ISubnetRef | string")),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TransitGatewayAttachment",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transitGatewayId=cdk().getRefProperty(props.transitGatewayId?.transitGatewayRef,"transitGatewayId")??cdk().ensureStringOrUndefined(props.transitGatewayId,"transitGatewayId","ec2.ITransitGatewayRef | string"),this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get transitGatewayAttachmentRef(){return{transitGatewayAttachmentId:this.ref}}get options(){return this._options}set options(value){cdk().traceProperty(this.node,"Options"),this._options=value}get subnetIds(){return this._subnetIds}set subnetIds(value){cdk().traceProperty(this.node,"SubnetIds"),this._subnetIds=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transitGatewayId(){return this._transitGatewayId}set transitGatewayId(value){cdk().traceProperty(this.node,"TransitGatewayId"),this._transitGatewayId=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{options:this._options,subnetIds:this._subnetIds,tags:this.tags.renderTags(),transitGatewayId:this._transitGatewayId,vpcId:this._vpcId}}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",CfnTransitGatewayAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayAttachmentPropsToCloudFormation(props)}}exports.CfnTransitGatewayAttachment=CfnTransitGatewayAttachment;function CfnTransitGatewayAttachmentOptionsPropertyValidator(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("applianceModeSupport",cdk().validateString)(properties.applianceModeSupport)),errors.collect(cdk().propertyValidator("dnsSupport",cdk().validateString)(properties.dnsSupport)),errors.collect(cdk().propertyValidator("ipv6Support",cdk().validateString)(properties.ipv6Support)),errors.collect(cdk().propertyValidator("securityGroupReferencingSupport",cdk().validateString)(properties.securityGroupReferencingSupport)),errors.wrap('supplied properties not correct for "OptionsProperty"')}function convertCfnTransitGatewayAttachmentOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayAttachmentOptionsPropertyValidator(properties).assertSuccess(),{ApplianceModeSupport:cdk().stringToCloudFormation(properties.applianceModeSupport),DnsSupport:cdk().stringToCloudFormation(properties.dnsSupport),Ipv6Support:cdk().stringToCloudFormation(properties.ipv6Support),SecurityGroupReferencingSupport:cdk().stringToCloudFormation(properties.securityGroupReferencingSupport)}):properties}function CfnTransitGatewayAttachmentOptionsPropertyFromCloudFormation(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("applianceModeSupport","ApplianceModeSupport",properties.ApplianceModeSupport!=null?cfn_parse().FromCloudFormation.getString(properties.ApplianceModeSupport):void 0),ret.addPropertyResult("dnsSupport","DnsSupport",properties.DnsSupport!=null?cfn_parse().FromCloudFormation.getString(properties.DnsSupport):void 0),ret.addPropertyResult("ipv6Support","Ipv6Support",properties.Ipv6Support!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6Support):void 0),ret.addPropertyResult("securityGroupReferencingSupport","SecurityGroupReferencingSupport",properties.SecurityGroupReferencingSupport!=null?cfn_parse().FromCloudFormation.getString(properties.SecurityGroupReferencingSupport):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTransitGatewayAttachmentPropsValidator(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("options",cdk().validateObject)(properties.options)),errors.collect(cdk().propertyValidator("subnetIds",cdk().requiredValidator)(properties.subnetIds)),errors.collect(cdk().propertyValidator("subnetIds",cdk().listValidator(cdk().validateString))(properties.subnetIds)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().requiredValidator)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().validateString)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayAttachmentProps"')}function convertCfnTransitGatewayAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayAttachmentPropsValidator(properties).assertSuccess(),{Options:cdk().objectToCloudFormation(properties.options),SubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnetIds),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayId:cdk().stringToCloudFormation(properties.transitGatewayId),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnTransitGatewayAttachmentPropsFromCloudFormation(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("options","Options",properties.Options!=null?cfn_parse().FromCloudFormation.getAny(properties.Options):void 0),ret.addPropertyResult("subnetIds","SubnetIds",properties.SubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SubnetIds):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayConnect extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayConnect",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayConnect";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayConnectPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayConnect(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 isCfnTransitGatewayConnect(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayConnect.CFN_RESOURCE_TYPE_NAME}_options;tags;_tagsRaw;_transportTransitGatewayAttachmentId;cfnPropertyNames={options:"Options",tags:"Tags",transportTransitGatewayAttachmentId:"TransportTransitGatewayAttachmentId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayConnect.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayConnectProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayConnect),error}cdk().requireProperty(props,"options",this),cdk().requireProperty(props,"transportTransitGatewayAttachmentId",this),this._options=props.options,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TransitGatewayConnect",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transportTransitGatewayAttachmentId=cdk().getRefProperty(props.transportTransitGatewayAttachmentId?.transitGatewayVpcAttachmentRef,"transitGatewayVpcAttachmentId")??cdk().ensureStringOrUndefined(props.transportTransitGatewayAttachmentId,"transportTransitGatewayAttachmentId","ec2.ITransitGatewayVpcAttachmentRef | string")}get transitGatewayConnectRef(){return{transitGatewayAttachmentId:this.ref}}get options(){return this._options}set options(value){cdk().traceProperty(this.node,"Options"),this._options=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transportTransitGatewayAttachmentId(){return this._transportTransitGatewayAttachmentId}set transportTransitGatewayAttachmentId(value){cdk().traceProperty(this.node,"TransportTransitGatewayAttachmentId"),this._transportTransitGatewayAttachmentId=value}get attrCreationTime(){return cdk().Token.asString(this.getAtt("CreationTime",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayAttachmentId(){return cdk().Token.asString(this.getAtt("TransitGatewayAttachmentId",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayId(){return cdk().Token.asString(this.getAtt("TransitGatewayId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{options:this._options,tags:this.tags.renderTags(),transportTransitGatewayAttachmentId:this._transportTransitGatewayAttachmentId}}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",CfnTransitGatewayConnect.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayConnectPropsToCloudFormation(props)}}exports.CfnTransitGatewayConnect=CfnTransitGatewayConnect;function CfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyValidator(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("protocol",cdk().validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "TransitGatewayConnectOptionsProperty"')}function convertCfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyValidator(properties).assertSuccess(),{Protocol:cdk().stringToCloudFormation(properties.protocol)}):properties}function CfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyFromCloudFormation(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("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTransitGatewayConnectPropsValidator(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("options",cdk().requiredValidator)(properties.options)),errors.collect(cdk().propertyValidator("options",CfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyValidator)(properties.options)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transportTransitGatewayAttachmentId",cdk().requiredValidator)(properties.transportTransitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("transportTransitGatewayAttachmentId",cdk().validateString)(properties.transportTransitGatewayAttachmentId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayConnectProps"')}function convertCfnTransitGatewayConnectPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayConnectPropsValidator(properties).assertSuccess(),{Options:convertCfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyToCloudFormation(properties.options),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransportTransitGatewayAttachmentId:cdk().stringToCloudFormation(properties.transportTransitGatewayAttachmentId)}):properties}function CfnTransitGatewayConnectPropsFromCloudFormation(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("options","Options",properties.Options!=null?CfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyFromCloudFormation(properties.Options):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transportTransitGatewayAttachmentId","TransportTransitGatewayAttachmentId",properties.TransportTransitGatewayAttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.TransportTransitGatewayAttachmentId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMulticastDomain extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastDomain",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastDomain";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastDomainPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayMulticastDomain(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 isCfnTransitGatewayMulticastDomain(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayMulticastDomain.CFN_RESOURCE_TYPE_NAME}static fromTransitGatewayMulticastDomainArn(scope,id,arn){class Import extends cdk().Resource{transitGatewayMulticastDomainRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-multicast-domain/${TransitGatewayMulticastDomainId}").parse(arn2);this.transitGatewayMulticastDomainRef={transitGatewayMulticastDomainId:variables.TransitGatewayMulticastDomainId,transitGatewayMulticastDomainArn:arn2}}}return new Import(scope,id,arn)}static fromTransitGatewayMulticastDomainId(scope,id,transitGatewayMulticastDomainId){class Import extends cdk().Resource{transitGatewayMulticastDomainRef;constructor(scope2,id2,transitGatewayMulticastDomainId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-multicast-domain/${TransitGatewayMulticastDomainId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,TransitGatewayMulticastDomainId:transitGatewayMulticastDomainId2});super(scope2,id2,{environmentFromArn:arn}),this.transitGatewayMulticastDomainRef={transitGatewayMulticastDomainId:transitGatewayMulticastDomainId2,transitGatewayMulticastDomainArn:arn}}}return new Import(scope,id,transitGatewayMulticastDomainId)}static arnForTransitGatewayMulticastDomain(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ITransitGatewayMulticastDomainRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTransitGatewayMulticastDomain),error}return resource.transitGatewayMulticastDomainRef.transitGatewayMulticastDomainArn}_options;tags;_tagsRaw;_transitGatewayId;cfnPropertyNames={options:"Options",tags:"Tags",transitGatewayId:"TransitGatewayId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastDomain.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastDomainProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastDomain),error}cdk().requireProperty(props,"transitGatewayId",this),this._options=props.options,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TransitGatewayMulticastDomain",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transitGatewayId=props.transitGatewayId}get transitGatewayMulticastDomainRef(){return{transitGatewayMulticastDomainId:this.ref,transitGatewayMulticastDomainArn:this.attrTransitGatewayMulticastDomainArn}}get options(){return this._options}set options(value){cdk().traceProperty(this.node,"Options"),this._options=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transitGatewayId(){return this._transitGatewayId}set transitGatewayId(value){cdk().traceProperty(this.node,"TransitGatewayId"),this._transitGatewayId=value}get attrCreationTime(){return cdk().Token.asString(this.getAtt("CreationTime",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayMulticastDomainArn(){return cdk().Token.asString(this.getAtt("TransitGatewayMulticastDomainArn",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayMulticastDomainId(){return cdk().Token.asString(this.getAtt("TransitGatewayMulticastDomainId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{options:this._options,tags:this.tags.renderTags(),transitGatewayId:this._transitGatewayId}}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",CfnTransitGatewayMulticastDomain.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayMulticastDomainPropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastDomain=CfnTransitGatewayMulticastDomain;function CfnTransitGatewayMulticastDomainOptionsPropertyValidator(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("autoAcceptSharedAssociations",cdk().validateString)(properties.autoAcceptSharedAssociations)),errors.collect(cdk().propertyValidator("igmpv2Support",cdk().validateString)(properties.igmpv2Support)),errors.collect(cdk().propertyValidator("staticSourcesSupport",cdk().validateString)(properties.staticSourcesSupport)),errors.wrap('supplied properties not correct for "OptionsProperty"')}function convertCfnTransitGatewayMulticastDomainOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayMulticastDomainOptionsPropertyValidator(properties).assertSuccess(),{AutoAcceptSharedAssociations:cdk().stringToCloudFormation(properties.autoAcceptSharedAssociations),Igmpv2Support:cdk().stringToCloudFormation(properties.igmpv2Support),StaticSourcesSupport:cdk().stringToCloudFormation(properties.staticSourcesSupport)}):properties}function CfnTransitGatewayMulticastDomainOptionsPropertyFromCloudFormation(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("autoAcceptSharedAssociations","AutoAcceptSharedAssociations",properties.AutoAcceptSharedAssociations!=null?cfn_parse().FromCloudFormation.getString(properties.AutoAcceptSharedAssociations):void 0),ret.addPropertyResult("igmpv2Support","Igmpv2Support",properties.Igmpv2Support!=null?cfn_parse().FromCloudFormation.getString(properties.Igmpv2Support):void 0),ret.addPropertyResult("staticSourcesSupport","StaticSourcesSupport",properties.StaticSourcesSupport!=null?cfn_parse().FromCloudFormation.getString(properties.StaticSourcesSupport):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTransitGatewayMulticastDomainPropsValidator(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("options",cdk().validateObject)(properties.options)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().requiredValidator)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().validateString)(properties.transitGatewayId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastDomainProps"')}function convertCfnTransitGatewayMulticastDomainPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayMulticastDomainPropsValidator(properties).assertSuccess(),{Options:cdk().objectToCloudFormation(properties.options),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayId:cdk().stringToCloudFormation(properties.transitGatewayId)}):properties}function CfnTransitGatewayMulticastDomainPropsFromCloudFormation(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("options","Options",properties.Options!=null?cfn_parse().FromCloudFormation.getAny(properties.Options):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMulticastDomainAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastDomainAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastDomainAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastDomainAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayMulticastDomainAssociation(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 isCfnTransitGatewayMulticastDomainAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayMulticastDomainAssociation.CFN_RESOURCE_TYPE_NAME}_subnetId;_transitGatewayAttachmentId;_transitGatewayMulticastDomainId;cfnPropertyNames={subnetId:"SubnetId",transitGatewayAttachmentId:"TransitGatewayAttachmentId",transitGatewayMulticastDomainId:"TransitGatewayMulticastDomainId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastDomainAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastDomainAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastDomainAssociation),error}cdk().requireProperty(props,"subnetId",this),cdk().requireProperty(props,"transitGatewayAttachmentId",this),cdk().requireProperty(props,"transitGatewayMulticastDomainId",this),this._subnetId=props.subnetId,this._transitGatewayAttachmentId=props.transitGatewayAttachmentId,this._transitGatewayMulticastDomainId=props.transitGatewayMulticastDomainId}get transitGatewayMulticastDomainAssociationRef(){return{transitGatewayMulticastDomainId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),transitGatewayAttachmentId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),subnetId:cdk().Fn.select(2,cdk().Fn.split("|",this.ref))}}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get transitGatewayAttachmentId(){return this._transitGatewayAttachmentId}set transitGatewayAttachmentId(value){cdk().traceProperty(this.node,"TransitGatewayAttachmentId"),this._transitGatewayAttachmentId=value}get transitGatewayMulticastDomainId(){return this._transitGatewayMulticastDomainId}set transitGatewayMulticastDomainId(value){cdk().traceProperty(this.node,"TransitGatewayMulticastDomainId"),this._transitGatewayMulticastDomainId=value}get attrResourceId(){return cdk().Token.asString(this.getAtt("ResourceId",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 cfnProperties(){return{subnetId:this._subnetId,transitGatewayAttachmentId:this._transitGatewayAttachmentId,transitGatewayMulticastDomainId:this._transitGatewayMulticastDomainId}}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",CfnTransitGatewayMulticastDomainAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayMulticastDomainAssociationPropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastDomainAssociation=CfnTransitGatewayMulticastDomainAssociation;function CfnTransitGatewayMulticastDomainAssociationPropsValidator(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("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.collect(cdk().propertyValidator("transitGatewayAttachmentId",cdk().requiredValidator)(properties.transitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("transitGatewayAttachmentId",cdk().validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("transitGatewayMulticastDomainId",cdk().requiredValidator)(properties.transitGatewayMulticastDomainId)),errors.collect(cdk().propertyValidator("transitGatewayMulticastDomainId",cdk().validateString)(properties.transitGatewayMulticastDomainId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastDomainAssociationProps"')}function convertCfnTransitGatewayMulticastDomainAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayMulticastDomainAssociationPropsValidator(properties).assertSuccess(),{SubnetId:cdk().stringToCloudFormation(properties.subnetId),TransitGatewayAttachmentId:cdk().stringToCloudFormation(properties.transitGatewayAttachmentId),TransitGatewayMulticastDomainId:cdk().stringToCloudFormation(properties.transitGatewayMulticastDomainId)}):properties}function CfnTransitGatewayMulticastDomainAssociationPropsFromCloudFormation(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("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("transitGatewayAttachmentId","TransitGatewayAttachmentId",properties.TransitGatewayAttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayAttachmentId):void 0),ret.addPropertyResult("transitGatewayMulticastDomainId","TransitGatewayMulticastDomainId",properties.TransitGatewayMulticastDomainId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayMulticastDomainId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMulticastGroupMember extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastGroupMember",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastGroupMember";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastGroupMemberPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayMulticastGroupMember(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 isCfnTransitGatewayMulticastGroupMember(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayMulticastGroupMember.CFN_RESOURCE_TYPE_NAME}_groupIpAddress;_networkInterfaceId;_transitGatewayMulticastDomainId;cfnPropertyNames={groupIpAddress:"GroupIpAddress",networkInterfaceId:"NetworkInterfaceId",transitGatewayMulticastDomainId:"TransitGatewayMulticastDomainId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastGroupMember.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastGroupMemberProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastGroupMember),error}cdk().requireProperty(props,"groupIpAddress",this),cdk().requireProperty(props,"networkInterfaceId",this),cdk().requireProperty(props,"transitGatewayMulticastDomainId",this),this._groupIpAddress=props.groupIpAddress,this._networkInterfaceId=props.networkInterfaceId,this._transitGatewayMulticastDomainId=props.transitGatewayMulticastDomainId}get transitGatewayMulticastGroupMemberRef(){return{transitGatewayMulticastDomainId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),groupIpAddress:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),networkInterfaceId:cdk().Fn.select(2,cdk().Fn.split("|",this.ref))}}get groupIpAddress(){return this._groupIpAddress}set groupIpAddress(value){cdk().traceProperty(this.node,"GroupIpAddress"),this._groupIpAddress=value}get networkInterfaceId(){return this._networkInterfaceId}set networkInterfaceId(value){cdk().traceProperty(this.node,"NetworkInterfaceId"),this._networkInterfaceId=value}get transitGatewayMulticastDomainId(){return this._transitGatewayMulticastDomainId}set transitGatewayMulticastDomainId(value){cdk().traceProperty(this.node,"TransitGatewayMulticastDomainId"),this._transitGatewayMulticastDomainId=value}get attrGroupMember(){return this.getAtt("GroupMember")}get attrGroupSource(){return this.getAtt("GroupSource")}get attrMemberType(){return cdk().Token.asString(this.getAtt("MemberType",cdk().ResolutionTypeHint.STRING))}get attrResourceId(){return cdk().Token.asString(this.getAtt("ResourceId",cdk().ResolutionTypeHint.STRING))}get attrResourceType(){return cdk().Token.asString(this.getAtt("ResourceType",cdk().ResolutionTypeHint.STRING))}get attrSourceType(){return cdk().Token.asString(this.getAtt("SourceType",cdk().ResolutionTypeHint.STRING))}get attrSubnetId(){return cdk().Token.asString(this.getAtt("SubnetId",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayAttachmentId(){return cdk().Token.asString(this.getAtt("TransitGatewayAttachmentId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{groupIpAddress:this._groupIpAddress,networkInterfaceId:this._networkInterfaceId,transitGatewayMulticastDomainId:this._transitGatewayMulticastDomainId}}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",CfnTransitGatewayMulticastGroupMember.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayMulticastGroupMemberPropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastGroupMember=CfnTransitGatewayMulticastGroupMember;function CfnTransitGatewayMulticastGroupMemberPropsValidator(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("groupIpAddress",cdk().requiredValidator)(properties.groupIpAddress)),errors.collect(cdk().propertyValidator("groupIpAddress",cdk().validateString)(properties.groupIpAddress)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("transitGatewayMulticastDomainId",cdk().requiredValidator)(properties.transitGatewayMulticastDomainId)),errors.collect(cdk().propertyValidator("transitGatewayMulticastDomainId",cdk().validateString)(properties.transitGatewayMulticastDomainId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastGroupMemberProps"')}function convertCfnTransitGatewayMulticastGroupMemberPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayMulticastGroupMemberPropsValidator(properties).assertSuccess(),{GroupIpAddress:cdk().stringToCloudFormation(properties.groupIpAddress),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),TransitGatewayMulticastDomainId:cdk().stringToCloudFormation(properties.transitGatewayMulticastDomainId)}):properties}function CfnTransitGatewayMulticastGroupMemberPropsFromCloudFormation(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("groupIpAddress","GroupIpAddress",properties.GroupIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.GroupIpAddress):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("transitGatewayMulticastDomainId","TransitGatewayMulticastDomainId",properties.TransitGatewayMulticastDomainId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayMulticastDomainId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMulticastGroupSource extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastGroupSource",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastGroupSource";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastGroupSourcePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayMulticastGroupSource(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 isCfnTransitGatewayMulticastGroupSource(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayMulticastGroupSource.CFN_RESOURCE_TYPE_NAME}_groupIpAddress;_networkInterfaceId;_transitGatewayMulticastDomainId;cfnPropertyNames={groupIpAddress:"GroupIpAddress",networkInterfaceId:"NetworkInterfaceId",transitGatewayMulticastDomainId:"TransitGatewayMulticastDomainId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastGroupSource.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastGroupSourceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastGroupSource),error}cdk().requireProperty(props,"groupIpAddress",this),cdk().requireProperty(props,"networkInterfaceId",this),cdk().requireProperty(props,"transitGatewayMulticastDomainId",this),this._groupIpAddress=props.groupIpAddress,this._networkInterfaceId=props.networkInterfaceId,this._transitGatewayMulticastDomainId=props.transitGatewayMulticastDomainId}get transitGatewayMulticastGroupSourceRef(){return{transitGatewayMulticastDomainId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),groupIpAddress:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),networkInterfaceId:cdk().Fn.select(2,cdk().Fn.split("|",this.ref))}}get groupIpAddress(){return this._groupIpAddress}set groupIpAddress(value){cdk().traceProperty(this.node,"GroupIpAddress"),this._groupIpAddress=value}get networkInterfaceId(){return this._networkInterfaceId}set networkInterfaceId(value){cdk().traceProperty(this.node,"NetworkInterfaceId"),this._networkInterfaceId=value}get transitGatewayMulticastDomainId(){return this._transitGatewayMulticastDomainId}set transitGatewayMulticastDomainId(value){cdk().traceProperty(this.node,"TransitGatewayMulticastDomainId"),this._transitGatewayMulticastDomainId=value}get attrGroupMember(){return this.getAtt("GroupMember")}get attrGroupSource(){return this.getAtt("GroupSource")}get attrMemberType(){return cdk().Token.asString(this.getAtt("MemberType",cdk().ResolutionTypeHint.STRING))}get attrResourceId(){return cdk().Token.asString(this.getAtt("ResourceId",cdk().ResolutionTypeHint.STRING))}get attrResourceType(){return cdk().Token.asString(this.getAtt("ResourceType",cdk().ResolutionTypeHint.STRING))}get attrSourceType(){return cdk().Token.asString(this.getAtt("SourceType",cdk().ResolutionTypeHint.STRING))}get attrSubnetId(){return cdk().Token.asString(this.getAtt("SubnetId",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayAttachmentId(){return cdk().Token.asString(this.getAtt("TransitGatewayAttachmentId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{groupIpAddress:this._groupIpAddress,networkInterfaceId:this._networkInterfaceId,transitGatewayMulticastDomainId:this._transitGatewayMulticastDomainId}}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",CfnTransitGatewayMulticastGroupSource.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayMulticastGroupSourcePropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastGroupSource=CfnTransitGatewayMulticastGroupSource;function CfnTransitGatewayMulticastGroupSourcePropsValidator(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("groupIpAddress",cdk().requiredValidator)(properties.groupIpAddress)),errors.collect(cdk().propertyValidator("groupIpAddress",cdk().validateString)(properties.groupIpAddress)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("transitGatewayMulticastDomainId",cdk().requiredValidator)(properties.transitGatewayMulticastDomainId)),errors.collect(cdk().propertyValidator("transitGatewayMulticastDomainId",cdk().validateString)(properties.transitGatewayMulticastDomainId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastGroupSourceProps"')}function convertCfnTransitGatewayMulticastGroupSourcePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayMulticastGroupSourcePropsValidator(properties).assertSuccess(),{GroupIpAddress:cdk().stringToCloudFormation(properties.groupIpAddress),NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),TransitGatewayMulticastDomainId:cdk().stringToCloudFormation(properties.transitGatewayMulticastDomainId)}):properties}function CfnTransitGatewayMulticastGroupSourcePropsFromCloudFormation(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("groupIpAddress","GroupIpAddress",properties.GroupIpAddress!=null?cfn_parse().FromCloudFormation.getString(properties.GroupIpAddress):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("transitGatewayMulticastDomainId","TransitGatewayMulticastDomainId",properties.TransitGatewayMulticastDomainId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayMulticastDomainId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayPeeringAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayPeeringAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayPeeringAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayPeeringAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayPeeringAttachment(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 isCfnTransitGatewayPeeringAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayPeeringAttachment.CFN_RESOURCE_TYPE_NAME}static fromTransitGatewayAttachmentId(scope,id,transitGatewayAttachmentId){class Import extends cdk().Resource{transitGatewayPeeringAttachmentRef;constructor(scope2,id2,transitGatewayAttachmentId2){super(scope2,id2),this.transitGatewayPeeringAttachmentRef={transitGatewayAttachmentId:transitGatewayAttachmentId2}}}return new Import(scope,id,transitGatewayAttachmentId)}static arnForTransitGatewayPeeringAttachment(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ITransitGatewayPeeringAttachmentRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTransitGatewayPeeringAttachment),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-attachment/${TransitGatewayAttachmentId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,TransitGatewayAttachmentId:resource.transitGatewayPeeringAttachmentRef.transitGatewayAttachmentId})}_peerAccountId;_peerRegion;_peerTransitGatewayId;tags;_tagsRaw;_transitGatewayId;cfnPropertyNames={peerAccountId:"PeerAccountId",peerRegion:"PeerRegion",peerTransitGatewayId:"PeerTransitGatewayId",tags:"Tags",transitGatewayId:"TransitGatewayId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayPeeringAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayPeeringAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayPeeringAttachment),error}cdk().requireProperty(props,"peerAccountId",this),cdk().requireProperty(props,"peerRegion",this),cdk().requireProperty(props,"peerTransitGatewayId",this),cdk().requireProperty(props,"transitGatewayId",this),this._peerAccountId=props.peerAccountId,this._peerRegion=props.peerRegion,this._peerTransitGatewayId=props.peerTransitGatewayId,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TransitGatewayPeeringAttachment",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transitGatewayId=cdk().getRefProperty(props.transitGatewayId?.transitGatewayRef,"transitGatewayId")??cdk().ensureStringOrUndefined(props.transitGatewayId,"transitGatewayId","ec2.ITransitGatewayRef | string")}get transitGatewayPeeringAttachmentRef(){return{transitGatewayAttachmentId:this.ref}}get peerAccountId(){return this._peerAccountId}set peerAccountId(value){cdk().traceProperty(this.node,"PeerAccountId"),this._peerAccountId=value}get peerRegion(){return this._peerRegion}set peerRegion(value){cdk().traceProperty(this.node,"PeerRegion"),this._peerRegion=value}get peerTransitGatewayId(){return this._peerTransitGatewayId}set peerTransitGatewayId(value){cdk().traceProperty(this.node,"PeerTransitGatewayId"),this._peerTransitGatewayId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transitGatewayId(){return this._transitGatewayId}set transitGatewayId(value){cdk().traceProperty(this.node,"TransitGatewayId"),this._transitGatewayId=value}get attrCreationTime(){return cdk().Token.asString(this.getAtt("CreationTime",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return this.getAtt("Status")}get attrStatusCode(){return cdk().Token.asString(this.getAtt("Status.Code",cdk().ResolutionTypeHint.STRING))}get attrStatusMessage(){return cdk().Token.asString(this.getAtt("Status.Message",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayAttachmentId(){return cdk().Token.asString(this.getAtt("TransitGatewayAttachmentId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{peerAccountId:this._peerAccountId,peerRegion:this._peerRegion,peerTransitGatewayId:this._peerTransitGatewayId,tags:this.tags.renderTags(),transitGatewayId:this._transitGatewayId}}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",CfnTransitGatewayPeeringAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayPeeringAttachmentPropsToCloudFormation(props)}}exports.CfnTransitGatewayPeeringAttachment=CfnTransitGatewayPeeringAttachment;function CfnTransitGatewayPeeringAttachmentPeeringAttachmentStatusPropertyValidator(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().validateString)(properties.code)),errors.collect(cdk().propertyValidator("message",cdk().validateString)(properties.message)),errors.wrap('supplied properties not correct for "PeeringAttachmentStatusProperty"')}function convertCfnTransitGatewayPeeringAttachmentPeeringAttachmentStatusPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayPeeringAttachmentPeeringAttachmentStatusPropertyValidator(properties).assertSuccess(),{Code:cdk().stringToCloudFormation(properties.code),Message:cdk().stringToCloudFormation(properties.message)}):properties}function CfnTransitGatewayPeeringAttachmentPeeringAttachmentStatusPropertyFromCloudFormation(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.getString(properties.Code):void 0),ret.addPropertyResult("message","Message",properties.Message!=null?cfn_parse().FromCloudFormation.getString(properties.Message):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTransitGatewayPeeringAttachmentPropsValidator(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("peerAccountId",cdk().requiredValidator)(properties.peerAccountId)),errors.collect(cdk().propertyValidator("peerAccountId",cdk().validateString)(properties.peerAccountId)),errors.collect(cdk().propertyValidator("peerRegion",cdk().requiredValidator)(properties.peerRegion)),errors.collect(cdk().propertyValidator("peerRegion",cdk().validateString)(properties.peerRegion)),errors.collect(cdk().propertyValidator("peerTransitGatewayId",cdk().requiredValidator)(properties.peerTransitGatewayId)),errors.collect(cdk().propertyValidator("peerTransitGatewayId",cdk().validateString)(properties.peerTransitGatewayId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().requiredValidator)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().validateString)(properties.transitGatewayId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayPeeringAttachmentProps"')}function convertCfnTransitGatewayPeeringAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayPeeringAttachmentPropsValidator(properties).assertSuccess(),{PeerAccountId:cdk().stringToCloudFormation(properties.peerAccountId),PeerRegion:cdk().stringToCloudFormation(properties.peerRegion),PeerTransitGatewayId:cdk().stringToCloudFormation(properties.peerTransitGatewayId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayId:cdk().stringToCloudFormation(properties.transitGatewayId)}):properties}function CfnTransitGatewayPeeringAttachmentPropsFromCloudFormation(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("peerAccountId","PeerAccountId",properties.PeerAccountId!=null?cfn_parse().FromCloudFormation.getString(properties.PeerAccountId):void 0),ret.addPropertyResult("peerRegion","PeerRegion",properties.PeerRegion!=null?cfn_parse().FromCloudFormation.getString(properties.PeerRegion):void 0),ret.addPropertyResult("peerTransitGatewayId","PeerTransitGatewayId",properties.PeerTransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.PeerTransitGatewayId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRoute extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRoute",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRoute";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRoutePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayRoute(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 isCfnTransitGatewayRoute(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayRoute.CFN_RESOURCE_TYPE_NAME}_blackhole;_destinationCidrBlock;_transitGatewayAttachmentId;_transitGatewayRouteTableId;cfnPropertyNames={blackhole:"Blackhole",destinationCidrBlock:"DestinationCidrBlock",transitGatewayAttachmentId:"TransitGatewayAttachmentId",transitGatewayRouteTableId:"TransitGatewayRouteTableId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRoute),error}cdk().requireProperty(props,"destinationCidrBlock",this),cdk().requireProperty(props,"transitGatewayRouteTableId",this),this._blackhole=props.blackhole,this._destinationCidrBlock=props.destinationCidrBlock,this._transitGatewayAttachmentId=cdk().getRefProperty(props.transitGatewayAttachmentId?.transitGatewayAttachmentRef,"transitGatewayAttachmentId")??cdk().getRefProperty(props.transitGatewayAttachmentId?.transitGatewayPeeringAttachmentRef,"transitGatewayAttachmentId")??cdk().ensureStringOrUndefined(props.transitGatewayAttachmentId,"transitGatewayAttachmentId","ec2.ITransitGatewayAttachmentRef | ec2.ITransitGatewayPeeringAttachmentRef | string"),this._transitGatewayRouteTableId=cdk().getRefProperty(props.transitGatewayRouteTableId?.transitGatewayRouteTableRef,"transitGatewayRouteTableId")??cdk().ensureStringOrUndefined(props.transitGatewayRouteTableId,"transitGatewayRouteTableId","ec2.ITransitGatewayRouteTableRef | string")}get transitGatewayRouteRef(){return{transitGatewayRouteTableId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),destinationCidrBlock:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get blackhole(){return this._blackhole}set blackhole(value){cdk().traceProperty(this.node,"Blackhole"),this._blackhole=value}get destinationCidrBlock(){return this._destinationCidrBlock}set destinationCidrBlock(value){cdk().traceProperty(this.node,"DestinationCidrBlock"),this._destinationCidrBlock=value}get transitGatewayAttachmentId(){return this._transitGatewayAttachmentId}set transitGatewayAttachmentId(value){cdk().traceProperty(this.node,"TransitGatewayAttachmentId"),this._transitGatewayAttachmentId=value}get transitGatewayRouteTableId(){return this._transitGatewayRouteTableId}set transitGatewayRouteTableId(value){cdk().traceProperty(this.node,"TransitGatewayRouteTableId"),this._transitGatewayRouteTableId=value}get cfnProperties(){return{blackhole:this._blackhole,destinationCidrBlock:this._destinationCidrBlock,transitGatewayAttachmentId:this._transitGatewayAttachmentId,transitGatewayRouteTableId:this._transitGatewayRouteTableId}}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",CfnTransitGatewayRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayRoutePropsToCloudFormation(props)}}exports.CfnTransitGatewayRoute=CfnTransitGatewayRoute;function CfnTransitGatewayRoutePropsValidator(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("blackhole",cdk().validateBoolean)(properties.blackhole)),errors.collect(cdk().propertyValidator("destinationCidrBlock",cdk().requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("destinationCidrBlock",cdk().validateString)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("transitGatewayAttachmentId",cdk().validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("transitGatewayRouteTableId",cdk().requiredValidator)(properties.transitGatewayRouteTableId)),errors.collect(cdk().propertyValidator("transitGatewayRouteTableId",cdk().validateString)(properties.transitGatewayRouteTableId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteProps"')}function convertCfnTransitGatewayRoutePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayRoutePropsValidator(properties).assertSuccess(),{Blackhole:cdk().booleanToCloudFormation(properties.blackhole),DestinationCidrBlock:cdk().stringToCloudFormation(properties.destinationCidrBlock),TransitGatewayAttachmentId:cdk().stringToCloudFormation(properties.transitGatewayAttachmentId),TransitGatewayRouteTableId:cdk().stringToCloudFormation(properties.transitGatewayRouteTableId)}):properties}function CfnTransitGatewayRoutePropsFromCloudFormation(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("blackhole","Blackhole",properties.Blackhole!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Blackhole):void 0),ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",properties.DestinationCidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationCidrBlock):void 0),ret.addPropertyResult("transitGatewayAttachmentId","TransitGatewayAttachmentId",properties.TransitGatewayAttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayAttachmentId):void 0),ret.addPropertyResult("transitGatewayRouteTableId","TransitGatewayRouteTableId",properties.TransitGatewayRouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayRouteTableId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRouteTable extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRouteTable",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRouteTable";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRouteTablePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayRouteTable(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 isCfnTransitGatewayRouteTable(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayRouteTable.CFN_RESOURCE_TYPE_NAME}static fromTransitGatewayRouteTableId(scope,id,transitGatewayRouteTableId){class Import extends cdk().Resource{transitGatewayRouteTableRef;constructor(scope2,id2,transitGatewayRouteTableId2){super(scope2,id2),this.transitGatewayRouteTableRef={transitGatewayRouteTableId:transitGatewayRouteTableId2}}}return new Import(scope,id,transitGatewayRouteTableId)}static arnForTransitGatewayRouteTable(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ITransitGatewayRouteTableRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTransitGatewayRouteTable),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-route-table/${TransitGatewayRouteTableId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,TransitGatewayRouteTableId:resource.transitGatewayRouteTableRef.transitGatewayRouteTableId})}tags;_tagsRaw;_transitGatewayId;cfnPropertyNames={tags:"Tags",transitGatewayId:"TransitGatewayId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRouteTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRouteTable),error}cdk().requireProperty(props,"transitGatewayId",this),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TransitGatewayRouteTable",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transitGatewayId=cdk().getRefProperty(props.transitGatewayId?.transitGatewayRef,"transitGatewayId")??cdk().ensureStringOrUndefined(props.transitGatewayId,"transitGatewayId","ec2.ITransitGatewayRef | string")}get transitGatewayRouteTableRef(){return{transitGatewayRouteTableId:this.ref}}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transitGatewayId(){return this._transitGatewayId}set transitGatewayId(value){cdk().traceProperty(this.node,"TransitGatewayId"),this._transitGatewayId=value}get attrTransitGatewayRouteTableId(){return cdk().Token.asString(this.getAtt("TransitGatewayRouteTableId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.tags.renderTags(),transitGatewayId:this._transitGatewayId}}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",CfnTransitGatewayRouteTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayRouteTablePropsToCloudFormation(props)}}exports.CfnTransitGatewayRouteTable=CfnTransitGatewayRouteTable;function CfnTransitGatewayRouteTablePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().requiredValidator)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().validateString)(properties.transitGatewayId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteTableProps"')}function convertCfnTransitGatewayRouteTablePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayRouteTablePropsValidator(properties).assertSuccess(),{Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayId:cdk().stringToCloudFormation(properties.transitGatewayId)}):properties}function CfnTransitGatewayRouteTablePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRouteTableAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRouteTableAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRouteTableAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRouteTableAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayRouteTableAssociation(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 isCfnTransitGatewayRouteTableAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME}_transitGatewayAttachmentId;_transitGatewayRouteTableId;cfnPropertyNames={transitGatewayAttachmentId:"TransitGatewayAttachmentId",transitGatewayRouteTableId:"TransitGatewayRouteTableId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteTableAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRouteTableAssociation),error}cdk().requireProperty(props,"transitGatewayAttachmentId",this),cdk().requireProperty(props,"transitGatewayRouteTableId",this),this._transitGatewayAttachmentId=cdk().getRefProperty(props.transitGatewayAttachmentId?.transitGatewayAttachmentRef,"transitGatewayAttachmentId")??cdk().ensureStringOrUndefined(props.transitGatewayAttachmentId,"transitGatewayAttachmentId","ec2.ITransitGatewayAttachmentRef | string"),this._transitGatewayRouteTableId=cdk().getRefProperty(props.transitGatewayRouteTableId?.transitGatewayRouteTableRef,"transitGatewayRouteTableId")??cdk().ensureStringOrUndefined(props.transitGatewayRouteTableId,"transitGatewayRouteTableId","ec2.ITransitGatewayRouteTableRef | string")}get transitGatewayRouteTableAssociationRef(){return{transitGatewayRouteTableId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),transitGatewayAttachmentId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get transitGatewayAttachmentId(){return this._transitGatewayAttachmentId}set transitGatewayAttachmentId(value){cdk().traceProperty(this.node,"TransitGatewayAttachmentId"),this._transitGatewayAttachmentId=value}get transitGatewayRouteTableId(){return this._transitGatewayRouteTableId}set transitGatewayRouteTableId(value){cdk().traceProperty(this.node,"TransitGatewayRouteTableId"),this._transitGatewayRouteTableId=value}get cfnProperties(){return{transitGatewayAttachmentId:this._transitGatewayAttachmentId,transitGatewayRouteTableId:this._transitGatewayRouteTableId}}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",CfnTransitGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayRouteTableAssociationPropsToCloudFormation(props)}}exports.CfnTransitGatewayRouteTableAssociation=CfnTransitGatewayRouteTableAssociation;function CfnTransitGatewayRouteTableAssociationPropsValidator(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("transitGatewayAttachmentId",cdk().requiredValidator)(properties.transitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("transitGatewayAttachmentId",cdk().validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("transitGatewayRouteTableId",cdk().requiredValidator)(properties.transitGatewayRouteTableId)),errors.collect(cdk().propertyValidator("transitGatewayRouteTableId",cdk().validateString)(properties.transitGatewayRouteTableId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteTableAssociationProps"')}function convertCfnTransitGatewayRouteTableAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayRouteTableAssociationPropsValidator(properties).assertSuccess(),{TransitGatewayAttachmentId:cdk().stringToCloudFormation(properties.transitGatewayAttachmentId),TransitGatewayRouteTableId:cdk().stringToCloudFormation(properties.transitGatewayRouteTableId)}):properties}function CfnTransitGatewayRouteTableAssociationPropsFromCloudFormation(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("transitGatewayAttachmentId","TransitGatewayAttachmentId",properties.TransitGatewayAttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayAttachmentId):void 0),ret.addPropertyResult("transitGatewayRouteTableId","TransitGatewayRouteTableId",properties.TransitGatewayRouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayRouteTableId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRouteTablePropagation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRouteTablePropagation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRouteTablePropagation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRouteTablePropagationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayRouteTablePropagation(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 isCfnTransitGatewayRouteTablePropagation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayRouteTablePropagation.CFN_RESOURCE_TYPE_NAME}_transitGatewayAttachmentId;_transitGatewayRouteTableId;cfnPropertyNames={transitGatewayAttachmentId:"TransitGatewayAttachmentId",transitGatewayRouteTableId:"TransitGatewayRouteTableId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRouteTablePropagation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteTablePropagationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRouteTablePropagation),error}cdk().requireProperty(props,"transitGatewayAttachmentId",this),cdk().requireProperty(props,"transitGatewayRouteTableId",this),this._transitGatewayAttachmentId=cdk().getRefProperty(props.transitGatewayAttachmentId?.transitGatewayAttachmentRef,"transitGatewayAttachmentId")??cdk().ensureStringOrUndefined(props.transitGatewayAttachmentId,"transitGatewayAttachmentId","ec2.ITransitGatewayAttachmentRef | string"),this._transitGatewayRouteTableId=cdk().getRefProperty(props.transitGatewayRouteTableId?.transitGatewayRouteTableRef,"transitGatewayRouteTableId")??cdk().ensureStringOrUndefined(props.transitGatewayRouteTableId,"transitGatewayRouteTableId","ec2.ITransitGatewayRouteTableRef | string")}get transitGatewayRouteTablePropagationRef(){return{transitGatewayRouteTableId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),transitGatewayAttachmentId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get transitGatewayAttachmentId(){return this._transitGatewayAttachmentId}set transitGatewayAttachmentId(value){cdk().traceProperty(this.node,"TransitGatewayAttachmentId"),this._transitGatewayAttachmentId=value}get transitGatewayRouteTableId(){return this._transitGatewayRouteTableId}set transitGatewayRouteTableId(value){cdk().traceProperty(this.node,"TransitGatewayRouteTableId"),this._transitGatewayRouteTableId=value}get cfnProperties(){return{transitGatewayAttachmentId:this._transitGatewayAttachmentId,transitGatewayRouteTableId:this._transitGatewayRouteTableId}}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",CfnTransitGatewayRouteTablePropagation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayRouteTablePropagationPropsToCloudFormation(props)}}exports.CfnTransitGatewayRouteTablePropagation=CfnTransitGatewayRouteTablePropagation;function CfnTransitGatewayRouteTablePropagationPropsValidator(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("transitGatewayAttachmentId",cdk().requiredValidator)(properties.transitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("transitGatewayAttachmentId",cdk().validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("transitGatewayRouteTableId",cdk().requiredValidator)(properties.transitGatewayRouteTableId)),errors.collect(cdk().propertyValidator("transitGatewayRouteTableId",cdk().validateString)(properties.transitGatewayRouteTableId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteTablePropagationProps"')}function convertCfnTransitGatewayRouteTablePropagationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayRouteTablePropagationPropsValidator(properties).assertSuccess(),{TransitGatewayAttachmentId:cdk().stringToCloudFormation(properties.transitGatewayAttachmentId),TransitGatewayRouteTableId:cdk().stringToCloudFormation(properties.transitGatewayRouteTableId)}):properties}function CfnTransitGatewayRouteTablePropagationPropsFromCloudFormation(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("transitGatewayAttachmentId","TransitGatewayAttachmentId",properties.TransitGatewayAttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayAttachmentId):void 0),ret.addPropertyResult("transitGatewayRouteTableId","TransitGatewayRouteTableId",properties.TransitGatewayRouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayRouteTableId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayVpcAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayVpcAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayVpcAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayVpcAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayVpcAttachment(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 isCfnTransitGatewayVpcAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayVpcAttachment.CFN_RESOURCE_TYPE_NAME}_addSubnetIds;_options;_removeSubnetIds;_subnetIds;tags;_tagsRaw;_transitGatewayId;_vpcId;cfnPropertyNames={addSubnetIds:"AddSubnetIds",options:"Options",removeSubnetIds:"RemoveSubnetIds",subnetIds:"SubnetIds",tags:"Tags",transitGatewayId:"TransitGatewayId",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayVpcAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayVpcAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayVpcAttachment),error}cdk().requireProperty(props,"subnetIds",this),cdk().requireProperty(props,"transitGatewayId",this),cdk().requireProperty(props,"vpcId",this),this._addSubnetIds=props.addSubnetIds,this._options=props.options,this._removeSubnetIds=props.removeSubnetIds,this._subnetIds=props.subnetIds,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TransitGatewayVpcAttachment",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transitGatewayId=cdk().getRefProperty(props.transitGatewayId?.transitGatewayRef,"transitGatewayId")??cdk().ensureStringOrUndefined(props.transitGatewayId,"transitGatewayId","ec2.ITransitGatewayRef | string"),this._vpcId=props.vpcId}get transitGatewayVpcAttachmentRef(){return{transitGatewayVpcAttachmentId:this.ref}}get addSubnetIds(){return this._addSubnetIds}set addSubnetIds(value){cdk().traceProperty(this.node,"AddSubnetIds"),this._addSubnetIds=value}get options(){return this._options}set options(value){cdk().traceProperty(this.node,"Options"),this._options=value}get removeSubnetIds(){return this._removeSubnetIds}set removeSubnetIds(value){cdk().traceProperty(this.node,"RemoveSubnetIds"),this._removeSubnetIds=value}get subnetIds(){return this._subnetIds}set subnetIds(value){cdk().traceProperty(this.node,"SubnetIds"),this._subnetIds=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transitGatewayId(){return this._transitGatewayId}set transitGatewayId(value){cdk().traceProperty(this.node,"TransitGatewayId"),this._transitGatewayId=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{addSubnetIds:this._addSubnetIds,options:this._options,removeSubnetIds:this._removeSubnetIds,subnetIds:this._subnetIds,tags:this.tags.renderTags(),transitGatewayId:this._transitGatewayId,vpcId:this._vpcId}}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",CfnTransitGatewayVpcAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayVpcAttachmentPropsToCloudFormation(props)}}exports.CfnTransitGatewayVpcAttachment=CfnTransitGatewayVpcAttachment;function CfnTransitGatewayVpcAttachmentOptionsPropertyValidator(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("applianceModeSupport",cdk().validateString)(properties.applianceModeSupport)),errors.collect(cdk().propertyValidator("dnsSupport",cdk().validateString)(properties.dnsSupport)),errors.collect(cdk().propertyValidator("ipv6Support",cdk().validateString)(properties.ipv6Support)),errors.collect(cdk().propertyValidator("securityGroupReferencingSupport",cdk().validateString)(properties.securityGroupReferencingSupport)),errors.wrap('supplied properties not correct for "OptionsProperty"')}function convertCfnTransitGatewayVpcAttachmentOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayVpcAttachmentOptionsPropertyValidator(properties).assertSuccess(),{ApplianceModeSupport:cdk().stringToCloudFormation(properties.applianceModeSupport),DnsSupport:cdk().stringToCloudFormation(properties.dnsSupport),Ipv6Support:cdk().stringToCloudFormation(properties.ipv6Support),SecurityGroupReferencingSupport:cdk().stringToCloudFormation(properties.securityGroupReferencingSupport)}):properties}function CfnTransitGatewayVpcAttachmentOptionsPropertyFromCloudFormation(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("applianceModeSupport","ApplianceModeSupport",properties.ApplianceModeSupport!=null?cfn_parse().FromCloudFormation.getString(properties.ApplianceModeSupport):void 0),ret.addPropertyResult("dnsSupport","DnsSupport",properties.DnsSupport!=null?cfn_parse().FromCloudFormation.getString(properties.DnsSupport):void 0),ret.addPropertyResult("ipv6Support","Ipv6Support",properties.Ipv6Support!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6Support):void 0),ret.addPropertyResult("securityGroupReferencingSupport","SecurityGroupReferencingSupport",properties.SecurityGroupReferencingSupport!=null?cfn_parse().FromCloudFormation.getString(properties.SecurityGroupReferencingSupport):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTransitGatewayVpcAttachmentPropsValidator(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("addSubnetIds",cdk().listValidator(cdk().validateString))(properties.addSubnetIds)),errors.collect(cdk().propertyValidator("options",cdk().validateObject)(properties.options)),errors.collect(cdk().propertyValidator("removeSubnetIds",cdk().listValidator(cdk().validateString))(properties.removeSubnetIds)),errors.collect(cdk().propertyValidator("subnetIds",cdk().requiredValidator)(properties.subnetIds)),errors.collect(cdk().propertyValidator("subnetIds",cdk().listValidator(cdk().validateString))(properties.subnetIds)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().requiredValidator)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().validateString)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayVpcAttachmentProps"')}function convertCfnTransitGatewayVpcAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayVpcAttachmentPropsValidator(properties).assertSuccess(),{AddSubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.addSubnetIds),Options:cdk().objectToCloudFormation(properties.options),RemoveSubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.removeSubnetIds),SubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnetIds),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayId:cdk().stringToCloudFormation(properties.transitGatewayId),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnTransitGatewayVpcAttachmentPropsFromCloudFormation(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("addSubnetIds","AddSubnetIds",properties.AddSubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AddSubnetIds):void 0),ret.addPropertyResult("options","Options",properties.Options!=null?cfn_parse().FromCloudFormation.getAny(properties.Options):void 0),ret.addPropertyResult("removeSubnetIds","RemoveSubnetIds",properties.RemoveSubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.RemoveSubnetIds):void 0),ret.addPropertyResult("subnetIds","SubnetIds",properties.SubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SubnetIds):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPC extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPC",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPC";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPC(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 isCfnVPC(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPC.CFN_RESOURCE_TYPE_NAME}static fromVpcId(scope,id,vpcId){class Import extends cdk().Resource{vpcRef;constructor(scope2,id2,vpcId2){super(scope2,id2),this.vpcRef={vpcId:vpcId2}}}return new Import(scope,id,vpcId)}static arnForVPC(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVPCRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVPC),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:vpc/${VpcId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,VpcId:resource.vpcRef.vpcId})}_cidrBlock;_enableDnsHostnames;_enableDnsSupport;_instanceTenancy;_ipv4IpamPoolId;_ipv4NetmaskLength;tags;_tagsRaw;cfnPropertyNames={cidrBlock:"CidrBlock",enableDnsHostnames:"EnableDnsHostnames",enableDnsSupport:"EnableDnsSupport",instanceTenancy:"InstanceTenancy",ipv4IpamPoolId:"Ipv4IpamPoolId",ipv4NetmaskLength:"Ipv4NetmaskLength",tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnVPC.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPC),error}this._cidrBlock=props.cidrBlock,this._enableDnsHostnames=props.enableDnsHostnames,this._enableDnsSupport=props.enableDnsSupport,this._instanceTenancy=props.instanceTenancy,this._ipv4IpamPoolId=props.ipv4IpamPoolId,this._ipv4NetmaskLength=props.ipv4NetmaskLength,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VPC",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get vpcRef(){return{vpcId:this.ref}}get cidrBlock(){return this._cidrBlock}set cidrBlock(value){cdk().traceProperty(this.node,"CidrBlock"),this._cidrBlock=value}get enableDnsHostnames(){return this._enableDnsHostnames}set enableDnsHostnames(value){cdk().traceProperty(this.node,"EnableDnsHostnames"),this._enableDnsHostnames=value}get enableDnsSupport(){return this._enableDnsSupport}set enableDnsSupport(value){cdk().traceProperty(this.node,"EnableDnsSupport"),this._enableDnsSupport=value}get instanceTenancy(){return this._instanceTenancy}set instanceTenancy(value){cdk().traceProperty(this.node,"InstanceTenancy"),this._instanceTenancy=value}get ipv4IpamPoolId(){return this._ipv4IpamPoolId}set ipv4IpamPoolId(value){cdk().traceProperty(this.node,"Ipv4IpamPoolId"),this._ipv4IpamPoolId=value}get ipv4NetmaskLength(){return this._ipv4NetmaskLength}set ipv4NetmaskLength(value){cdk().traceProperty(this.node,"Ipv4NetmaskLength"),this._ipv4NetmaskLength=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrCidrBlock(){return cdk().Token.asString(this.getAtt("CidrBlock",cdk().ResolutionTypeHint.STRING))}get attrCidrBlockAssociations(){return cdk().Token.asList(this.getAtt("CidrBlockAssociations",cdk().ResolutionTypeHint.STRING_LIST))}get attrDefaultNetworkAcl(){return cdk().Token.asString(this.getAtt("DefaultNetworkAcl",cdk().ResolutionTypeHint.STRING))}get attrDefaultSecurityGroup(){return cdk().Token.asString(this.getAtt("DefaultSecurityGroup",cdk().ResolutionTypeHint.STRING))}get attrIpv6CidrBlocks(){return cdk().Token.asList(this.getAtt("Ipv6CidrBlocks",cdk().ResolutionTypeHint.STRING_LIST))}get attrVpcId(){return cdk().Token.asString(this.getAtt("VpcId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{cidrBlock:this._cidrBlock,enableDnsHostnames:this._enableDnsHostnames,enableDnsSupport:this._enableDnsSupport,instanceTenancy:this._instanceTenancy,ipv4IpamPoolId:this._ipv4IpamPoolId,ipv4NetmaskLength:this._ipv4NetmaskLength,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",CfnVPC.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCPropsToCloudFormation(props)}}exports.CfnVPC=CfnVPC;function CfnVPCPropsValidator(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("cidrBlock",cdk().validateString)(properties.cidrBlock)),errors.collect(cdk().propertyValidator("enableDnsHostnames",cdk().validateBoolean)(properties.enableDnsHostnames)),errors.collect(cdk().propertyValidator("enableDnsSupport",cdk().validateBoolean)(properties.enableDnsSupport)),errors.collect(cdk().propertyValidator("instanceTenancy",cdk().validateString)(properties.instanceTenancy)),errors.collect(cdk().propertyValidator("ipv4IpamPoolId",cdk().validateString)(properties.ipv4IpamPoolId)),errors.collect(cdk().propertyValidator("ipv4NetmaskLength",cdk().validateNumber)(properties.ipv4NetmaskLength)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnVPCProps"')}function convertCfnVPCPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCPropsValidator(properties).assertSuccess(),{CidrBlock:cdk().stringToCloudFormation(properties.cidrBlock),EnableDnsHostnames:cdk().booleanToCloudFormation(properties.enableDnsHostnames),EnableDnsSupport:cdk().booleanToCloudFormation(properties.enableDnsSupport),InstanceTenancy:cdk().stringToCloudFormation(properties.instanceTenancy),Ipv4IpamPoolId:cdk().stringToCloudFormation(properties.ipv4IpamPoolId),Ipv4NetmaskLength:cdk().numberToCloudFormation(properties.ipv4NetmaskLength),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVPCPropsFromCloudFormation(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("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("enableDnsHostnames","EnableDnsHostnames",properties.EnableDnsHostnames!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableDnsHostnames):void 0),ret.addPropertyResult("enableDnsSupport","EnableDnsSupport",properties.EnableDnsSupport!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableDnsSupport):void 0),ret.addPropertyResult("instanceTenancy","InstanceTenancy",properties.InstanceTenancy!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceTenancy):void 0),ret.addPropertyResult("ipv4IpamPoolId","Ipv4IpamPoolId",properties.Ipv4IpamPoolId!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv4IpamPoolId):void 0),ret.addPropertyResult("ipv4NetmaskLength","Ipv4NetmaskLength",properties.Ipv4NetmaskLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv4NetmaskLength):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 CfnVPCCidrBlock extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCCidrBlock",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCCidrBlock";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCCidrBlockPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPCCidrBlock(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 isCfnVPCCidrBlock(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPCCidrBlock.CFN_RESOURCE_TYPE_NAME}_amazonProvidedIpv6CidrBlock;_cidrBlock;_ipv4IpamPoolId;_ipv4NetmaskLength;_ipv6CidrBlock;_ipv6CidrBlockNetworkBorderGroup;_ipv6IpamPoolId;_ipv6NetmaskLength;_ipv6Pool;_vpcId;cfnPropertyNames={amazonProvidedIpv6CidrBlock:"AmazonProvidedIpv6CidrBlock",cidrBlock:"CidrBlock",ipv4IpamPoolId:"Ipv4IpamPoolId",ipv4NetmaskLength:"Ipv4NetmaskLength",ipv6CidrBlock:"Ipv6CidrBlock",ipv6CidrBlockNetworkBorderGroup:"Ipv6CidrBlockNetworkBorderGroup",ipv6IpamPoolId:"Ipv6IpamPoolId",ipv6NetmaskLength:"Ipv6NetmaskLength",ipv6Pool:"Ipv6Pool",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnVPCCidrBlock.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCCidrBlockProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCCidrBlock),error}cdk().requireProperty(props,"vpcId",this),this._amazonProvidedIpv6CidrBlock=props.amazonProvidedIpv6CidrBlock,this._cidrBlock=props.cidrBlock,this._ipv4IpamPoolId=props.ipv4IpamPoolId,this._ipv4NetmaskLength=props.ipv4NetmaskLength,this._ipv6CidrBlock=props.ipv6CidrBlock,this._ipv6CidrBlockNetworkBorderGroup=props.ipv6CidrBlockNetworkBorderGroup,this._ipv6IpamPoolId=props.ipv6IpamPoolId,this._ipv6NetmaskLength=props.ipv6NetmaskLength,this._ipv6Pool=props.ipv6Pool,this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get vpcCidrBlockRef(){return{vpcCidrBlockId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),vpcId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get amazonProvidedIpv6CidrBlock(){return this._amazonProvidedIpv6CidrBlock}set amazonProvidedIpv6CidrBlock(value){cdk().traceProperty(this.node,"AmazonProvidedIpv6CidrBlock"),this._amazonProvidedIpv6CidrBlock=value}get cidrBlock(){return this._cidrBlock}set cidrBlock(value){cdk().traceProperty(this.node,"CidrBlock"),this._cidrBlock=value}get ipv4IpamPoolId(){return this._ipv4IpamPoolId}set ipv4IpamPoolId(value){cdk().traceProperty(this.node,"Ipv4IpamPoolId"),this._ipv4IpamPoolId=value}get ipv4NetmaskLength(){return this._ipv4NetmaskLength}set ipv4NetmaskLength(value){cdk().traceProperty(this.node,"Ipv4NetmaskLength"),this._ipv4NetmaskLength=value}get ipv6CidrBlock(){return this._ipv6CidrBlock}set ipv6CidrBlock(value){cdk().traceProperty(this.node,"Ipv6CidrBlock"),this._ipv6CidrBlock=value}get ipv6CidrBlockNetworkBorderGroup(){return this._ipv6CidrBlockNetworkBorderGroup}set ipv6CidrBlockNetworkBorderGroup(value){cdk().traceProperty(this.node,"Ipv6CidrBlockNetworkBorderGroup"),this._ipv6CidrBlockNetworkBorderGroup=value}get ipv6IpamPoolId(){return this._ipv6IpamPoolId}set ipv6IpamPoolId(value){cdk().traceProperty(this.node,"Ipv6IpamPoolId"),this._ipv6IpamPoolId=value}get ipv6NetmaskLength(){return this._ipv6NetmaskLength}set ipv6NetmaskLength(value){cdk().traceProperty(this.node,"Ipv6NetmaskLength"),this._ipv6NetmaskLength=value}get ipv6Pool(){return this._ipv6Pool}set ipv6Pool(value){cdk().traceProperty(this.node,"Ipv6Pool"),this._ipv6Pool=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrIpSource(){return cdk().Token.asString(this.getAtt("IpSource",cdk().ResolutionTypeHint.STRING))}get attrIpv6AddressAttribute(){return cdk().Token.asString(this.getAtt("Ipv6AddressAttribute",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{amazonProvidedIpv6CidrBlock:this._amazonProvidedIpv6CidrBlock,cidrBlock:this._cidrBlock,ipv4IpamPoolId:this._ipv4IpamPoolId,ipv4NetmaskLength:this._ipv4NetmaskLength,ipv6CidrBlock:this._ipv6CidrBlock,ipv6CidrBlockNetworkBorderGroup:this._ipv6CidrBlockNetworkBorderGroup,ipv6IpamPoolId:this._ipv6IpamPoolId,ipv6NetmaskLength:this._ipv6NetmaskLength,ipv6Pool:this._ipv6Pool,vpcId:this._vpcId}}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",CfnVPCCidrBlock.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCCidrBlockPropsToCloudFormation(props)}}exports.CfnVPCCidrBlock=CfnVPCCidrBlock;function CfnVPCCidrBlockPropsValidator(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("amazonProvidedIpv6CidrBlock",cdk().validateBoolean)(properties.amazonProvidedIpv6CidrBlock)),errors.collect(cdk().propertyValidator("cidrBlock",cdk().validateString)(properties.cidrBlock)),errors.collect(cdk().propertyValidator("ipv4IpamPoolId",cdk().validateString)(properties.ipv4IpamPoolId)),errors.collect(cdk().propertyValidator("ipv4NetmaskLength",cdk().validateNumber)(properties.ipv4NetmaskLength)),errors.collect(cdk().propertyValidator("ipv6CidrBlock",cdk().validateString)(properties.ipv6CidrBlock)),errors.collect(cdk().propertyValidator("ipv6CidrBlockNetworkBorderGroup",cdk().validateString)(properties.ipv6CidrBlockNetworkBorderGroup)),errors.collect(cdk().propertyValidator("ipv6IpamPoolId",cdk().validateString)(properties.ipv6IpamPoolId)),errors.collect(cdk().propertyValidator("ipv6NetmaskLength",cdk().validateNumber)(properties.ipv6NetmaskLength)),errors.collect(cdk().propertyValidator("ipv6Pool",cdk().validateString)(properties.ipv6Pool)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCCidrBlockProps"')}function convertCfnVPCCidrBlockPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCCidrBlockPropsValidator(properties).assertSuccess(),{AmazonProvidedIpv6CidrBlock:cdk().booleanToCloudFormation(properties.amazonProvidedIpv6CidrBlock),CidrBlock:cdk().stringToCloudFormation(properties.cidrBlock),Ipv4IpamPoolId:cdk().stringToCloudFormation(properties.ipv4IpamPoolId),Ipv4NetmaskLength:cdk().numberToCloudFormation(properties.ipv4NetmaskLength),Ipv6CidrBlock:cdk().stringToCloudFormation(properties.ipv6CidrBlock),Ipv6CidrBlockNetworkBorderGroup:cdk().stringToCloudFormation(properties.ipv6CidrBlockNetworkBorderGroup),Ipv6IpamPoolId:cdk().stringToCloudFormation(properties.ipv6IpamPoolId),Ipv6NetmaskLength:cdk().numberToCloudFormation(properties.ipv6NetmaskLength),Ipv6Pool:cdk().stringToCloudFormation(properties.ipv6Pool),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnVPCCidrBlockPropsFromCloudFormation(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("amazonProvidedIpv6CidrBlock","AmazonProvidedIpv6CidrBlock",properties.AmazonProvidedIpv6CidrBlock!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AmazonProvidedIpv6CidrBlock):void 0),ret.addPropertyResult("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("ipv4IpamPoolId","Ipv4IpamPoolId",properties.Ipv4IpamPoolId!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv4IpamPoolId):void 0),ret.addPropertyResult("ipv4NetmaskLength","Ipv4NetmaskLength",properties.Ipv4NetmaskLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv4NetmaskLength):void 0),ret.addPropertyResult("ipv6CidrBlock","Ipv6CidrBlock",properties.Ipv6CidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6CidrBlock):void 0),ret.addPropertyResult("ipv6CidrBlockNetworkBorderGroup","Ipv6CidrBlockNetworkBorderGroup",properties.Ipv6CidrBlockNetworkBorderGroup!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6CidrBlockNetworkBorderGroup):void 0),ret.addPropertyResult("ipv6IpamPoolId","Ipv6IpamPoolId",properties.Ipv6IpamPoolId!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6IpamPoolId):void 0),ret.addPropertyResult("ipv6NetmaskLength","Ipv6NetmaskLength",properties.Ipv6NetmaskLength!=null?cfn_parse().FromCloudFormation.getNumber(properties.Ipv6NetmaskLength):void 0),ret.addPropertyResult("ipv6Pool","Ipv6Pool",properties.Ipv6Pool!=null?cfn_parse().FromCloudFormation.getString(properties.Ipv6Pool):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCDHCPOptionsAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCDHCPOptionsAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCDHCPOptionsAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCDHCPOptionsAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPCDHCPOptionsAssociation(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 isCfnVPCDHCPOptionsAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPCDHCPOptionsAssociation.CFN_RESOURCE_TYPE_NAME}_dhcpOptionsId;_vpcId;cfnPropertyNames={dhcpOptionsId:"DhcpOptionsId",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnVPCDHCPOptionsAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCDHCPOptionsAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCDHCPOptionsAssociation),error}cdk().requireProperty(props,"dhcpOptionsId",this),cdk().requireProperty(props,"vpcId",this),this._dhcpOptionsId=cdk().getRefProperty(props.dhcpOptionsId?.dhcpOptionsRef,"dhcpOptionsId")??cdk().ensureStringOrUndefined(props.dhcpOptionsId,"dhcpOptionsId","ec2.IDHCPOptionsRef | string"),this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get vpcdhcpOptionsAssociationRef(){return{dhcpOptionsId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),vpcId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get dhcpOptionsId(){return this._dhcpOptionsId}set dhcpOptionsId(value){cdk().traceProperty(this.node,"DhcpOptionsId"),this._dhcpOptionsId=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get cfnProperties(){return{dhcpOptionsId:this._dhcpOptionsId,vpcId:this._vpcId}}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",CfnVPCDHCPOptionsAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCDHCPOptionsAssociationPropsToCloudFormation(props)}}exports.CfnVPCDHCPOptionsAssociation=CfnVPCDHCPOptionsAssociation;function CfnVPCDHCPOptionsAssociationPropsValidator(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("dhcpOptionsId",cdk().requiredValidator)(properties.dhcpOptionsId)),errors.collect(cdk().propertyValidator("dhcpOptionsId",cdk().validateString)(properties.dhcpOptionsId)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCDHCPOptionsAssociationProps"')}function convertCfnVPCDHCPOptionsAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCDHCPOptionsAssociationPropsValidator(properties).assertSuccess(),{DhcpOptionsId:cdk().stringToCloudFormation(properties.dhcpOptionsId),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnVPCDHCPOptionsAssociationPropsFromCloudFormation(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("dhcpOptionsId","DhcpOptionsId",properties.DhcpOptionsId!=null?cfn_parse().FromCloudFormation.getString(properties.DhcpOptionsId):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEndpoint extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpoint",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpoint";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPCEndpoint(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 isCfnVPCEndpoint(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPCEndpoint.CFN_RESOURCE_TYPE_NAME}static fromVpcEndpointId(scope,id,vpcEndpointId){class Import extends cdk().Resource{vpcEndpointRef;constructor(scope2,id2,vpcEndpointId2){super(scope2,id2),this.vpcEndpointRef={vpcEndpointId:vpcEndpointId2}}}return new Import(scope,id,vpcEndpointId)}static arnForVPCEndpoint(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVPCEndpointRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVPCEndpoint),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:vpc-endpoint/${VpcEndpointId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,VpcEndpointId:resource.vpcEndpointRef.vpcEndpointId})}cdkTagManager;_dnsOptions;_ipAddressType;_policyDocument;_privateDnsEnabled;_resourceConfigurationArn;_routeTableIds;_securityGroupIds;_serviceName;_serviceNetworkArn;_serviceRegion;_subnetIds;_tags;_vpcEndpointType;_vpcId;cfnPropertyNames={tags:"Tags",dnsOptions:"DnsOptions",ipAddressType:"IpAddressType",policyDocument:"PolicyDocument",privateDnsEnabled:"PrivateDnsEnabled",resourceConfigurationArn:"ResourceConfigurationArn",routeTableIds:"RouteTableIds",securityGroupIds:"SecurityGroupIds",serviceName:"ServiceName",serviceNetworkArn:"ServiceNetworkArn",serviceRegion:"ServiceRegion",subnetIds:"SubnetIds",vpcEndpointType:"VpcEndpointType",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnVPCEndpoint.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpoint),error}cdk().requireProperty(props,"vpcId",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VPCEndpoint",void 0,{tagPropertyName:"tags"}),this._dnsOptions=props.dnsOptions,this._ipAddressType=props.ipAddressType,this._policyDocument=props.policyDocument,this._privateDnsEnabled=props.privateDnsEnabled,this._resourceConfigurationArn=props.resourceConfigurationArn,this._routeTableIds=cdk().mapArrayInPlace(props.routeTableIds,item=>cdk().getRefProperty(item?.routeTableRef,"routeTableId")??cdk().ensureStringOrUndefined(item,"routeTableIds","ec2.IRouteTableRef | string")),this._securityGroupIds=cdk().mapArrayInPlace(props.securityGroupIds,item=>cdk().getRefProperty(item?.securityGroupRef,"securityGroupId")??cdk().ensureStringOrUndefined(item,"securityGroupIds","ec2.ISecurityGroupRef | string")),this._serviceName=props.serviceName,this._serviceNetworkArn=props.serviceNetworkArn,this._serviceRegion=props.serviceRegion,this._subnetIds=cdk().mapArrayInPlace(props.subnetIds,item=>cdk().getRefProperty(item?.subnetRef,"subnetId")??cdk().ensureStringOrUndefined(item,"subnetIds","ec2.ISubnetRef | string")),this._tags=props.tags,this._vpcEndpointType=props.vpcEndpointType,this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get vpcEndpointRef(){return{vpcEndpointId:this.ref}}get dnsOptions(){return this._dnsOptions}set dnsOptions(value){cdk().traceProperty(this.node,"DnsOptions"),this._dnsOptions=value}get ipAddressType(){return this._ipAddressType}set ipAddressType(value){cdk().traceProperty(this.node,"IpAddressType"),this._ipAddressType=value}get policyDocument(){return this._policyDocument}set policyDocument(value){cdk().traceProperty(this.node,"PolicyDocument"),this._policyDocument=value}get privateDnsEnabled(){return this._privateDnsEnabled}set privateDnsEnabled(value){cdk().traceProperty(this.node,"PrivateDnsEnabled"),this._privateDnsEnabled=value}get resourceConfigurationArn(){return this._resourceConfigurationArn}set resourceConfigurationArn(value){cdk().traceProperty(this.node,"ResourceConfigurationArn"),this._resourceConfigurationArn=value}get routeTableIds(){return this._routeTableIds}set routeTableIds(value){cdk().traceProperty(this.node,"RouteTableIds"),this._routeTableIds=value}get securityGroupIds(){return this._securityGroupIds}set securityGroupIds(value){cdk().traceProperty(this.node,"SecurityGroupIds"),this._securityGroupIds=value}get serviceName(){return this._serviceName}set serviceName(value){cdk().traceProperty(this.node,"ServiceName"),this._serviceName=value}get serviceNetworkArn(){return this._serviceNetworkArn}set serviceNetworkArn(value){cdk().traceProperty(this.node,"ServiceNetworkArn"),this._serviceNetworkArn=value}get serviceRegion(){return this._serviceRegion}set serviceRegion(value){cdk().traceProperty(this.node,"ServiceRegion"),this._serviceRegion=value}get subnetIds(){return this._subnetIds}set subnetIds(value){cdk().traceProperty(this.node,"SubnetIds"),this._subnetIds=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get vpcEndpointType(){return this._vpcEndpointType}set vpcEndpointType(value){cdk().traceProperty(this.node,"VpcEndpointType"),this._vpcEndpointType=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrCreationTimestamp(){return cdk().Token.asString(this.getAtt("CreationTimestamp",cdk().ResolutionTypeHint.STRING))}get attrDnsEntries(){return cdk().Token.asList(this.getAtt("DnsEntries",cdk().ResolutionTypeHint.STRING_LIST))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrNetworkInterfaceIds(){return cdk().Token.asList(this.getAtt("NetworkInterfaceIds",cdk().ResolutionTypeHint.STRING_LIST))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),dnsOptions:this._dnsOptions,ipAddressType:this._ipAddressType,policyDocument:this._policyDocument,privateDnsEnabled:this._privateDnsEnabled,resourceConfigurationArn:this._resourceConfigurationArn,routeTableIds:this._routeTableIds,securityGroupIds:this._securityGroupIds,serviceName:this._serviceName,serviceNetworkArn:this._serviceNetworkArn,serviceRegion:this._serviceRegion,subnetIds:this._subnetIds,vpcEndpointType:this._vpcEndpointType,vpcId:this._vpcId}}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",CfnVPCEndpoint.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCEndpointPropsToCloudFormation(props)}}exports.CfnVPCEndpoint=CfnVPCEndpoint;function CfnVPCEndpointDnsOptionsSpecificationPropertyValidator(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("dnsRecordIpType",cdk().validateString)(properties.dnsRecordIpType)),errors.collect(cdk().propertyValidator("privateDnsOnlyForInboundResolverEndpoint",cdk().validateString)(properties.privateDnsOnlyForInboundResolverEndpoint)),errors.collect(cdk().propertyValidator("privateDnsPreference",cdk().validateString)(properties.privateDnsPreference)),errors.collect(cdk().propertyValidator("privateDnsSpecifiedDomains",cdk().listValidator(cdk().validateString))(properties.privateDnsSpecifiedDomains)),errors.wrap('supplied properties not correct for "DnsOptionsSpecificationProperty"')}function convertCfnVPCEndpointDnsOptionsSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCEndpointDnsOptionsSpecificationPropertyValidator(properties).assertSuccess(),{DnsRecordIpType:cdk().stringToCloudFormation(properties.dnsRecordIpType),PrivateDnsOnlyForInboundResolverEndpoint:cdk().stringToCloudFormation(properties.privateDnsOnlyForInboundResolverEndpoint),PrivateDnsPreference:cdk().stringToCloudFormation(properties.privateDnsPreference),PrivateDnsSpecifiedDomains:cdk().listMapper(cdk().stringToCloudFormation)(properties.privateDnsSpecifiedDomains)}):properties}function CfnVPCEndpointDnsOptionsSpecificationPropertyFromCloudFormation(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("dnsRecordIpType","DnsRecordIpType",properties.DnsRecordIpType!=null?cfn_parse().FromCloudFormation.getString(properties.DnsRecordIpType):void 0),ret.addPropertyResult("privateDnsOnlyForInboundResolverEndpoint","PrivateDnsOnlyForInboundResolverEndpoint",properties.PrivateDnsOnlyForInboundResolverEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateDnsOnlyForInboundResolverEndpoint):void 0),ret.addPropertyResult("privateDnsPreference","PrivateDnsPreference",properties.PrivateDnsPreference!=null?cfn_parse().FromCloudFormation.getString(properties.PrivateDnsPreference):void 0),ret.addPropertyResult("privateDnsSpecifiedDomains","PrivateDnsSpecifiedDomains",properties.PrivateDnsSpecifiedDomains!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.PrivateDnsSpecifiedDomains):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPCEndpointPropsValidator(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("dnsOptions",CfnVPCEndpointDnsOptionsSpecificationPropertyValidator)(properties.dnsOptions)),errors.collect(cdk().propertyValidator("ipAddressType",cdk().validateString)(properties.ipAddressType)),errors.collect(cdk().propertyValidator("policyDocument",cdk().validateObject)(properties.policyDocument)),errors.collect(cdk().propertyValidator("privateDnsEnabled",cdk().validateBoolean)(properties.privateDnsEnabled)),errors.collect(cdk().propertyValidator("resourceConfigurationArn",cdk().validateString)(properties.resourceConfigurationArn)),errors.collect(cdk().propertyValidator("routeTableIds",cdk().listValidator(cdk().validateString))(properties.routeTableIds)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().listValidator(cdk().validateString))(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("serviceName",cdk().validateString)(properties.serviceName)),errors.collect(cdk().propertyValidator("serviceNetworkArn",cdk().validateString)(properties.serviceNetworkArn)),errors.collect(cdk().propertyValidator("serviceRegion",cdk().validateString)(properties.serviceRegion)),errors.collect(cdk().propertyValidator("subnetIds",cdk().listValidator(cdk().validateString))(properties.subnetIds)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcEndpointType",cdk().validateString)(properties.vpcEndpointType)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCEndpointProps"')}function convertCfnVPCEndpointPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCEndpointPropsValidator(properties).assertSuccess(),{DnsOptions:convertCfnVPCEndpointDnsOptionsSpecificationPropertyToCloudFormation(properties.dnsOptions),IpAddressType:cdk().stringToCloudFormation(properties.ipAddressType),PolicyDocument:cdk().objectToCloudFormation(properties.policyDocument),PrivateDnsEnabled:cdk().booleanToCloudFormation(properties.privateDnsEnabled),ResourceConfigurationArn:cdk().stringToCloudFormation(properties.resourceConfigurationArn),RouteTableIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.routeTableIds),SecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroupIds),ServiceName:cdk().stringToCloudFormation(properties.serviceName),ServiceNetworkArn:cdk().stringToCloudFormation(properties.serviceNetworkArn),ServiceRegion:cdk().stringToCloudFormation(properties.serviceRegion),SubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnetIds),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcEndpointType:cdk().stringToCloudFormation(properties.vpcEndpointType),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnVPCEndpointPropsFromCloudFormation(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("dnsOptions","DnsOptions",properties.DnsOptions!=null?CfnVPCEndpointDnsOptionsSpecificationPropertyFromCloudFormation(properties.DnsOptions):void 0),ret.addPropertyResult("ipAddressType","IpAddressType",properties.IpAddressType!=null?cfn_parse().FromCloudFormation.getString(properties.IpAddressType):void 0),ret.addPropertyResult("policyDocument","PolicyDocument",properties.PolicyDocument!=null?cfn_parse().FromCloudFormation.getAny(properties.PolicyDocument):void 0),ret.addPropertyResult("privateDnsEnabled","PrivateDnsEnabled",properties.PrivateDnsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PrivateDnsEnabled):void 0),ret.addPropertyResult("resourceConfigurationArn","ResourceConfigurationArn",properties.ResourceConfigurationArn!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceConfigurationArn):void 0),ret.addPropertyResult("routeTableIds","RouteTableIds",properties.RouteTableIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.RouteTableIds):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroupIds):void 0),ret.addPropertyResult("serviceName","ServiceName",properties.ServiceName!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceName):void 0),ret.addPropertyResult("serviceNetworkArn","ServiceNetworkArn",properties.ServiceNetworkArn!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceNetworkArn):void 0),ret.addPropertyResult("serviceRegion","ServiceRegion",properties.ServiceRegion!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceRegion):void 0),ret.addPropertyResult("subnetIds","SubnetIds",properties.SubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SubnetIds):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcEndpointType","VpcEndpointType",properties.VpcEndpointType!=null?cfn_parse().FromCloudFormation.getString(properties.VpcEndpointType):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEndpointConnectionNotification extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpointConnectionNotification",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpointConnectionNotification";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointConnectionNotificationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPCEndpointConnectionNotification(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 isCfnVPCEndpointConnectionNotification(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPCEndpointConnectionNotification.CFN_RESOURCE_TYPE_NAME}_connectionEvents;_connectionNotificationArn;_serviceId;_vpcEndpointId;cfnPropertyNames={connectionEvents:"ConnectionEvents",connectionNotificationArn:"ConnectionNotificationArn",serviceId:"ServiceId",vpcEndpointId:"VPCEndpointId"};constructor(scope,id,props){super(scope,id,{type:CfnVPCEndpointConnectionNotification.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCEndpointConnectionNotificationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpointConnectionNotification),error}cdk().requireProperty(props,"connectionEvents",this),cdk().requireProperty(props,"connectionNotificationArn",this),this._connectionEvents=props.connectionEvents,this._connectionNotificationArn=cdk().getRefProperty(props.connectionNotificationArn?.topicRef,"topicArn")??cdk().ensureStringOrUndefined(props.connectionNotificationArn,"connectionNotificationArn","sns.ITopicRef | string"),this._serviceId=cdk().getRefProperty(props.serviceId?.vpcEndpointServiceRef,"serviceId")??cdk().ensureStringOrUndefined(props.serviceId,"serviceId","ec2.IVPCEndpointServiceRef | string"),this._vpcEndpointId=props.vpcEndpointId}get vpcEndpointConnectionNotificationRef(){return{vpcEndpointConnectionNotificationId:this.ref}}get connectionEvents(){return this._connectionEvents}set connectionEvents(value){cdk().traceProperty(this.node,"ConnectionEvents"),this._connectionEvents=value}get connectionNotificationArn(){return this._connectionNotificationArn}set connectionNotificationArn(value){cdk().traceProperty(this.node,"ConnectionNotificationArn"),this._connectionNotificationArn=value}get serviceId(){return this._serviceId}set serviceId(value){cdk().traceProperty(this.node,"ServiceId"),this._serviceId=value}get vpcEndpointId(){return this._vpcEndpointId}set vpcEndpointId(value){cdk().traceProperty(this.node,"VPCEndpointId"),this._vpcEndpointId=value}get attrVpcEndpointConnectionNotificationId(){return cdk().Token.asString(this.getAtt("VPCEndpointConnectionNotificationId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{connectionEvents:this._connectionEvents,connectionNotificationArn:this._connectionNotificationArn,serviceId:this._serviceId,vpcEndpointId:this._vpcEndpointId}}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",CfnVPCEndpointConnectionNotification.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCEndpointConnectionNotificationPropsToCloudFormation(props)}}exports.CfnVPCEndpointConnectionNotification=CfnVPCEndpointConnectionNotification;function CfnVPCEndpointConnectionNotificationPropsValidator(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("connectionEvents",cdk().requiredValidator)(properties.connectionEvents)),errors.collect(cdk().propertyValidator("connectionEvents",cdk().listValidator(cdk().validateString))(properties.connectionEvents)),errors.collect(cdk().propertyValidator("connectionNotificationArn",cdk().requiredValidator)(properties.connectionNotificationArn)),errors.collect(cdk().propertyValidator("connectionNotificationArn",cdk().validateString)(properties.connectionNotificationArn)),errors.collect(cdk().propertyValidator("serviceId",cdk().validateString)(properties.serviceId)),errors.collect(cdk().propertyValidator("vpcEndpointId",cdk().validateString)(properties.vpcEndpointId)),errors.wrap('supplied properties not correct for "CfnVPCEndpointConnectionNotificationProps"')}function convertCfnVPCEndpointConnectionNotificationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCEndpointConnectionNotificationPropsValidator(properties).assertSuccess(),{ConnectionEvents:cdk().listMapper(cdk().stringToCloudFormation)(properties.connectionEvents),ConnectionNotificationArn:cdk().stringToCloudFormation(properties.connectionNotificationArn),ServiceId:cdk().stringToCloudFormation(properties.serviceId),VPCEndpointId:cdk().stringToCloudFormation(properties.vpcEndpointId)}):properties}function CfnVPCEndpointConnectionNotificationPropsFromCloudFormation(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("connectionEvents","ConnectionEvents",properties.ConnectionEvents!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ConnectionEvents):void 0),ret.addPropertyResult("connectionNotificationArn","ConnectionNotificationArn",properties.ConnectionNotificationArn!=null?cfn_parse().FromCloudFormation.getString(properties.ConnectionNotificationArn):void 0),ret.addPropertyResult("serviceId","ServiceId",properties.ServiceId!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceId):void 0),ret.addPropertyResult("vpcEndpointId","VPCEndpointId",properties.VPCEndpointId!=null?cfn_parse().FromCloudFormation.getString(properties.VPCEndpointId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEndpointService extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpointService",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpointService";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointServicePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPCEndpointService(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 isCfnVPCEndpointService(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPCEndpointService.CFN_RESOURCE_TYPE_NAME}_acceptanceRequired;cdkTagManager;_contributorInsightsEnabled;_gatewayLoadBalancerArns;_networkLoadBalancerArns;_payerResponsibility;_supportedIpAddressTypes;_supportedRegions;_tags;cfnPropertyNames={acceptanceRequired:"AcceptanceRequired",tags:"Tags",contributorInsightsEnabled:"ContributorInsightsEnabled",gatewayLoadBalancerArns:"GatewayLoadBalancerArns",networkLoadBalancerArns:"NetworkLoadBalancerArns",payerResponsibility:"PayerResponsibility",supportedIpAddressTypes:"SupportedIpAddressTypes",supportedRegions:"SupportedRegions"};constructor(scope,id,props={}){super(scope,id,{type:CfnVPCEndpointService.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCEndpointServiceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpointService),error}this._acceptanceRequired=props.acceptanceRequired,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VPCEndpointService",void 0,{tagPropertyName:"tags"}),this._contributorInsightsEnabled=props.contributorInsightsEnabled,this._gatewayLoadBalancerArns=props.gatewayLoadBalancerArns,this._networkLoadBalancerArns=cdk().mapArrayInPlace(props.networkLoadBalancerArns,item=>cdk().getRefProperty(item?.loadBalancerRef,"loadBalancerArn")??cdk().ensureStringOrUndefined(item,"networkLoadBalancerArns","elasticloadbalancingv2.ILoadBalancerRef | string")),this._payerResponsibility=props.payerResponsibility,this._supportedIpAddressTypes=props.supportedIpAddressTypes,this._supportedRegions=props.supportedRegions,this._tags=props.tags}get vpcEndpointServiceRef(){return{serviceId:this.ref}}get acceptanceRequired(){return this._acceptanceRequired}set acceptanceRequired(value){cdk().traceProperty(this.node,"AcceptanceRequired"),this._acceptanceRequired=value}get contributorInsightsEnabled(){return this._contributorInsightsEnabled}set contributorInsightsEnabled(value){cdk().traceProperty(this.node,"ContributorInsightsEnabled"),this._contributorInsightsEnabled=value}get gatewayLoadBalancerArns(){return this._gatewayLoadBalancerArns}set gatewayLoadBalancerArns(value){cdk().traceProperty(this.node,"GatewayLoadBalancerArns"),this._gatewayLoadBalancerArns=value}get networkLoadBalancerArns(){return this._networkLoadBalancerArns}set networkLoadBalancerArns(value){cdk().traceProperty(this.node,"NetworkLoadBalancerArns"),this._networkLoadBalancerArns=value}get payerResponsibility(){return this._payerResponsibility}set payerResponsibility(value){cdk().traceProperty(this.node,"PayerResponsibility"),this._payerResponsibility=value}get supportedIpAddressTypes(){return this._supportedIpAddressTypes}set supportedIpAddressTypes(value){cdk().traceProperty(this.node,"SupportedIpAddressTypes"),this._supportedIpAddressTypes=value}get supportedRegions(){return this._supportedRegions}set supportedRegions(value){cdk().traceProperty(this.node,"SupportedRegions"),this._supportedRegions=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrServiceId(){return cdk().Token.asString(this.getAtt("ServiceId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{acceptanceRequired:this._acceptanceRequired,tags:this.cdkTagManager.renderTags(this._tags),contributorInsightsEnabled:this._contributorInsightsEnabled,gatewayLoadBalancerArns:this._gatewayLoadBalancerArns,networkLoadBalancerArns:this._networkLoadBalancerArns,payerResponsibility:this._payerResponsibility,supportedIpAddressTypes:this._supportedIpAddressTypes,supportedRegions:this._supportedRegions}}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",CfnVPCEndpointService.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCEndpointServicePropsToCloudFormation(props)}}exports.CfnVPCEndpointService=CfnVPCEndpointService;function CfnVPCEndpointServicePropsValidator(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("acceptanceRequired",cdk().validateBoolean)(properties.acceptanceRequired)),errors.collect(cdk().propertyValidator("contributorInsightsEnabled",cdk().validateBoolean)(properties.contributorInsightsEnabled)),errors.collect(cdk().propertyValidator("gatewayLoadBalancerArns",cdk().listValidator(cdk().validateString))(properties.gatewayLoadBalancerArns)),errors.collect(cdk().propertyValidator("networkLoadBalancerArns",cdk().listValidator(cdk().validateString))(properties.networkLoadBalancerArns)),errors.collect(cdk().propertyValidator("payerResponsibility",cdk().validateString)(properties.payerResponsibility)),errors.collect(cdk().propertyValidator("supportedIpAddressTypes",cdk().listValidator(cdk().validateString))(properties.supportedIpAddressTypes)),errors.collect(cdk().propertyValidator("supportedRegions",cdk().listValidator(cdk().validateString))(properties.supportedRegions)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnVPCEndpointServiceProps"')}function convertCfnVPCEndpointServicePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCEndpointServicePropsValidator(properties).assertSuccess(),{AcceptanceRequired:cdk().booleanToCloudFormation(properties.acceptanceRequired),ContributorInsightsEnabled:cdk().booleanToCloudFormation(properties.contributorInsightsEnabled),GatewayLoadBalancerArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.gatewayLoadBalancerArns),NetworkLoadBalancerArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.networkLoadBalancerArns),PayerResponsibility:cdk().stringToCloudFormation(properties.payerResponsibility),SupportedIpAddressTypes:cdk().listMapper(cdk().stringToCloudFormation)(properties.supportedIpAddressTypes),SupportedRegions:cdk().listMapper(cdk().stringToCloudFormation)(properties.supportedRegions),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVPCEndpointServicePropsFromCloudFormation(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("acceptanceRequired","AcceptanceRequired",properties.AcceptanceRequired!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AcceptanceRequired):void 0),ret.addPropertyResult("contributorInsightsEnabled","ContributorInsightsEnabled",properties.ContributorInsightsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.ContributorInsightsEnabled):void 0),ret.addPropertyResult("gatewayLoadBalancerArns","GatewayLoadBalancerArns",properties.GatewayLoadBalancerArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.GatewayLoadBalancerArns):void 0),ret.addPropertyResult("networkLoadBalancerArns","NetworkLoadBalancerArns",properties.NetworkLoadBalancerArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.NetworkLoadBalancerArns):void 0),ret.addPropertyResult("payerResponsibility","PayerResponsibility",properties.PayerResponsibility!=null?cfn_parse().FromCloudFormation.getString(properties.PayerResponsibility):void 0),ret.addPropertyResult("supportedIpAddressTypes","SupportedIpAddressTypes",properties.SupportedIpAddressTypes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SupportedIpAddressTypes):void 0),ret.addPropertyResult("supportedRegions","SupportedRegions",properties.SupportedRegions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SupportedRegions):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 CfnVPCEndpointServicePermissions extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpointServicePermissions",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpointServicePermissions";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointServicePermissionsPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPCEndpointServicePermissions(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 isCfnVPCEndpointServicePermissions(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPCEndpointServicePermissions.CFN_RESOURCE_TYPE_NAME}_allowedPrincipals;_serviceId;cfnPropertyNames={allowedPrincipals:"AllowedPrincipals",serviceId:"ServiceId"};constructor(scope,id,props){super(scope,id,{type:CfnVPCEndpointServicePermissions.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCEndpointServicePermissionsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpointServicePermissions),error}cdk().requireProperty(props,"serviceId",this),this._allowedPrincipals=props.allowedPrincipals,this._serviceId=cdk().getRefProperty(props.serviceId?.vpcEndpointServiceRef,"serviceId")??cdk().ensureStringOrUndefined(props.serviceId,"serviceId","ec2.IVPCEndpointServiceRef | string")}get vpcEndpointServicePermissionsRef(){return{serviceId:this.ref}}get allowedPrincipals(){return this._allowedPrincipals}set allowedPrincipals(value){cdk().traceProperty(this.node,"AllowedPrincipals"),this._allowedPrincipals=value}get serviceId(){return this._serviceId}set serviceId(value){cdk().traceProperty(this.node,"ServiceId"),this._serviceId=value}get cfnProperties(){return{allowedPrincipals:this._allowedPrincipals,serviceId:this._serviceId}}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",CfnVPCEndpointServicePermissions.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCEndpointServicePermissionsPropsToCloudFormation(props)}}exports.CfnVPCEndpointServicePermissions=CfnVPCEndpointServicePermissions;function CfnVPCEndpointServicePermissionsPropsValidator(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("allowedPrincipals",cdk().listValidator(cdk().validateString))(properties.allowedPrincipals)),errors.collect(cdk().propertyValidator("serviceId",cdk().requiredValidator)(properties.serviceId)),errors.collect(cdk().propertyValidator("serviceId",cdk().validateString)(properties.serviceId)),errors.wrap('supplied properties not correct for "CfnVPCEndpointServicePermissionsProps"')}function convertCfnVPCEndpointServicePermissionsPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCEndpointServicePermissionsPropsValidator(properties).assertSuccess(),{AllowedPrincipals:cdk().listMapper(cdk().stringToCloudFormation)(properties.allowedPrincipals),ServiceId:cdk().stringToCloudFormation(properties.serviceId)}):properties}function CfnVPCEndpointServicePermissionsPropsFromCloudFormation(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("allowedPrincipals","AllowedPrincipals",properties.AllowedPrincipals!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.AllowedPrincipals):void 0),ret.addPropertyResult("serviceId","ServiceId",properties.ServiceId!=null?cfn_parse().FromCloudFormation.getString(properties.ServiceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCGatewayAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCGatewayAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCGatewayAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPCGatewayAttachment(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 isCfnVPCGatewayAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPCGatewayAttachment.CFN_RESOURCE_TYPE_NAME}_internetGatewayId;_vpcId;_vpnGatewayId;cfnPropertyNames={internetGatewayId:"InternetGatewayId",vpcId:"VpcId",vpnGatewayId:"VpnGatewayId"};constructor(scope,id,props){super(scope,id,{type:CfnVPCGatewayAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCGatewayAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCGatewayAttachment),error}cdk().requireProperty(props,"vpcId",this),this._internetGatewayId=cdk().getRefProperty(props.internetGatewayId?.internetGatewayRef,"internetGatewayId")??cdk().ensureStringOrUndefined(props.internetGatewayId,"internetGatewayId","ec2.IInternetGatewayRef | string"),this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string"),this._vpnGatewayId=cdk().getRefProperty(props.vpnGatewayId?.vpnGatewayRef,"vpnGatewayId")??cdk().ensureStringOrUndefined(props.vpnGatewayId,"vpnGatewayId","ec2.IVPNGatewayRef | string")}get vpcGatewayAttachmentRef(){return{attachmentType:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),vpcId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get internetGatewayId(){return this._internetGatewayId}set internetGatewayId(value){cdk().traceProperty(this.node,"InternetGatewayId"),this._internetGatewayId=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get vpnGatewayId(){return this._vpnGatewayId}set vpnGatewayId(value){cdk().traceProperty(this.node,"VpnGatewayId"),this._vpnGatewayId=value}get attrAttachmentType(){return cdk().Token.asString(this.getAtt("AttachmentType",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{internetGatewayId:this._internetGatewayId,vpcId:this._vpcId,vpnGatewayId:this._vpnGatewayId}}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",CfnVPCGatewayAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCGatewayAttachmentPropsToCloudFormation(props)}}exports.CfnVPCGatewayAttachment=CfnVPCGatewayAttachment;function CfnVPCGatewayAttachmentPropsValidator(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("internetGatewayId",cdk().validateString)(properties.internetGatewayId)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpnGatewayId",cdk().validateString)(properties.vpnGatewayId)),errors.wrap('supplied properties not correct for "CfnVPCGatewayAttachmentProps"')}function convertCfnVPCGatewayAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCGatewayAttachmentPropsValidator(properties).assertSuccess(),{InternetGatewayId:cdk().stringToCloudFormation(properties.internetGatewayId),VpcId:cdk().stringToCloudFormation(properties.vpcId),VpnGatewayId:cdk().stringToCloudFormation(properties.vpnGatewayId)}):properties}function CfnVPCGatewayAttachmentPropsFromCloudFormation(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("internetGatewayId","InternetGatewayId",properties.InternetGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.InternetGatewayId):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addPropertyResult("vpnGatewayId","VpnGatewayId",properties.VpnGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.VpnGatewayId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCPeeringConnection extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCPeeringConnection",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCPeeringConnection";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCPeeringConnectionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPCPeeringConnection(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 isCfnVPCPeeringConnection(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPCPeeringConnection.CFN_RESOURCE_TYPE_NAME}static fromVpcPeeringConnectionId(scope,id,vpcPeeringConnectionId){class Import extends cdk().Resource{vpcPeeringConnectionRef;constructor(scope2,id2,vpcPeeringConnectionId2){super(scope2,id2),this.vpcPeeringConnectionRef={vpcPeeringConnectionId:vpcPeeringConnectionId2}}}return new Import(scope,id,vpcPeeringConnectionId)}static arnForVPCPeeringConnection(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVPCPeeringConnectionRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVPCPeeringConnection),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:vpc-peering-connection/${VpcPeeringConnectionId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,VpcPeeringConnectionId:resource.vpcPeeringConnectionRef.vpcPeeringConnectionId})}_assumeRoleRegion;_peerOwnerId;_peerRegion;_peerRoleArn;_peerVpcId;tags;_tagsRaw;_vpcId;cfnPropertyNames={assumeRoleRegion:"AssumeRoleRegion",peerOwnerId:"PeerOwnerId",peerRegion:"PeerRegion",peerRoleArn:"PeerRoleArn",peerVpcId:"PeerVpcId",tags:"Tags",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnVPCPeeringConnection.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCPeeringConnectionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCPeeringConnection),error}cdk().requireProperty(props,"peerVpcId",this),cdk().requireProperty(props,"vpcId",this),this._assumeRoleRegion=props.assumeRoleRegion,this._peerOwnerId=props.peerOwnerId,this._peerRegion=props.peerRegion,this._peerRoleArn=props.peerRoleArn,this._peerVpcId=cdk().getRefProperty(props.peerVpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.peerVpcId,"peerVpcId","ec2.IVPCRef | string"),this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VPCPeeringConnection",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._vpcId=cdk().getRefProperty(props.vpcId?.vpcRef,"vpcId")??cdk().ensureStringOrUndefined(props.vpcId,"vpcId","ec2.IVPCRef | string")}get vpcPeeringConnectionRef(){return{vpcPeeringConnectionId:this.ref}}get assumeRoleRegion(){return this._assumeRoleRegion}set assumeRoleRegion(value){cdk().traceProperty(this.node,"AssumeRoleRegion"),this._assumeRoleRegion=value}get peerOwnerId(){return this._peerOwnerId}set peerOwnerId(value){cdk().traceProperty(this.node,"PeerOwnerId"),this._peerOwnerId=value}get peerRegion(){return this._peerRegion}set peerRegion(value){cdk().traceProperty(this.node,"PeerRegion"),this._peerRegion=value}get peerRoleArn(){return this._peerRoleArn}set peerRoleArn(value){cdk().traceProperty(this.node,"PeerRoleArn"),this._peerRoleArn=value}get peerVpcId(){return this._peerVpcId}set peerVpcId(value){cdk().traceProperty(this.node,"PeerVpcId"),this._peerVpcId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{assumeRoleRegion:this._assumeRoleRegion,peerOwnerId:this._peerOwnerId,peerRegion:this._peerRegion,peerRoleArn:this._peerRoleArn,peerVpcId:this._peerVpcId,tags:this.tags.renderTags(),vpcId:this._vpcId}}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",CfnVPCPeeringConnection.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCPeeringConnectionPropsToCloudFormation(props)}}exports.CfnVPCPeeringConnection=CfnVPCPeeringConnection;function CfnVPCPeeringConnectionPropsValidator(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("assumeRoleRegion",cdk().validateString)(properties.assumeRoleRegion)),errors.collect(cdk().propertyValidator("peerOwnerId",cdk().validateString)(properties.peerOwnerId)),errors.collect(cdk().propertyValidator("peerRegion",cdk().validateString)(properties.peerRegion)),errors.collect(cdk().propertyValidator("peerRoleArn",cdk().validateString)(properties.peerRoleArn)),errors.collect(cdk().propertyValidator("peerVpcId",cdk().requiredValidator)(properties.peerVpcId)),errors.collect(cdk().propertyValidator("peerVpcId",cdk().validateString)(properties.peerVpcId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCPeeringConnectionProps"')}function convertCfnVPCPeeringConnectionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCPeeringConnectionPropsValidator(properties).assertSuccess(),{AssumeRoleRegion:cdk().stringToCloudFormation(properties.assumeRoleRegion),PeerOwnerId:cdk().stringToCloudFormation(properties.peerOwnerId),PeerRegion:cdk().stringToCloudFormation(properties.peerRegion),PeerRoleArn:cdk().stringToCloudFormation(properties.peerRoleArn),PeerVpcId:cdk().stringToCloudFormation(properties.peerVpcId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnVPCPeeringConnectionPropsFromCloudFormation(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("assumeRoleRegion","AssumeRoleRegion",properties.AssumeRoleRegion!=null?cfn_parse().FromCloudFormation.getString(properties.AssumeRoleRegion):void 0),ret.addPropertyResult("peerOwnerId","PeerOwnerId",properties.PeerOwnerId!=null?cfn_parse().FromCloudFormation.getString(properties.PeerOwnerId):void 0),ret.addPropertyResult("peerRegion","PeerRegion",properties.PeerRegion!=null?cfn_parse().FromCloudFormation.getString(properties.PeerRegion):void 0),ret.addPropertyResult("peerRoleArn","PeerRoleArn",properties.PeerRoleArn!=null?cfn_parse().FromCloudFormation.getString(properties.PeerRoleArn):void 0),ret.addPropertyResult("peerVpcId","PeerVpcId",properties.PeerVpcId!=null?cfn_parse().FromCloudFormation.getString(properties.PeerVpcId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPNConnection extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNConnection",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNConnection";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNConnectionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPNConnection(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 isCfnVPNConnection(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPNConnection.CFN_RESOURCE_TYPE_NAME}static fromVpnConnectionId(scope,id,vpnConnectionId){class Import extends cdk().Resource{vpnConnectionRef;constructor(scope2,id2,vpnConnectionId2){super(scope2,id2),this.vpnConnectionRef={vpnConnectionId:vpnConnectionId2}}}return new Import(scope,id,vpnConnectionId)}static arnForVPNConnection(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVPNConnectionRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVPNConnection),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:vpn-connection/${VpnConnectionId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,VpnConnectionId:resource.vpnConnectionRef.vpnConnectionId})}_customerGatewayId;_enableAcceleration;_localIpv4NetworkCidr;_localIpv6NetworkCidr;_outsideIpAddressType;_preSharedKeyStorage;_remoteIpv4NetworkCidr;_remoteIpv6NetworkCidr;_staticRoutesOnly;tags;_tagsRaw;_transitGatewayId;_transportTransitGatewayAttachmentId;_tunnelBandwidth;_tunnelInsideIpVersion;_type;_vpnConcentratorId;_vpnGatewayId;_vpnTunnelOptionsSpecifications;cfnPropertyNames={customerGatewayId:"CustomerGatewayId",enableAcceleration:"EnableAcceleration",localIpv4NetworkCidr:"LocalIpv4NetworkCidr",localIpv6NetworkCidr:"LocalIpv6NetworkCidr",outsideIpAddressType:"OutsideIpAddressType",preSharedKeyStorage:"PreSharedKeyStorage",remoteIpv4NetworkCidr:"RemoteIpv4NetworkCidr",remoteIpv6NetworkCidr:"RemoteIpv6NetworkCidr",staticRoutesOnly:"StaticRoutesOnly",tags:"Tags",transitGatewayId:"TransitGatewayId",transportTransitGatewayAttachmentId:"TransportTransitGatewayAttachmentId",tunnelBandwidth:"TunnelBandwidth",tunnelInsideIpVersion:"TunnelInsideIpVersion",type:"Type",vpnConcentratorId:"VpnConcentratorId",vpnGatewayId:"VpnGatewayId",vpnTunnelOptionsSpecifications:"VpnTunnelOptionsSpecifications"};constructor(scope,id,props){super(scope,id,{type:CfnVPNConnection.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPNConnectionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNConnection),error}cdk().requireProperty(props,"customerGatewayId",this),cdk().requireProperty(props,"type",this),this._customerGatewayId=cdk().getRefProperty(props.customerGatewayId?.customerGatewayRef,"customerGatewayId")??cdk().ensureStringOrUndefined(props.customerGatewayId,"customerGatewayId","ec2.ICustomerGatewayRef | string"),this._enableAcceleration=props.enableAcceleration,this._localIpv4NetworkCidr=props.localIpv4NetworkCidr,this._localIpv6NetworkCidr=props.localIpv6NetworkCidr,this._outsideIpAddressType=props.outsideIpAddressType,this._preSharedKeyStorage=props.preSharedKeyStorage,this._remoteIpv4NetworkCidr=props.remoteIpv4NetworkCidr,this._remoteIpv6NetworkCidr=props.remoteIpv6NetworkCidr,this._staticRoutesOnly=props.staticRoutesOnly,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VPNConnection",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transitGatewayId=cdk().getRefProperty(props.transitGatewayId?.transitGatewayRef,"transitGatewayId")??cdk().ensureStringOrUndefined(props.transitGatewayId,"transitGatewayId","ec2.ITransitGatewayRef | string"),this._transportTransitGatewayAttachmentId=props.transportTransitGatewayAttachmentId,this._tunnelBandwidth=props.tunnelBandwidth,this._tunnelInsideIpVersion=props.tunnelInsideIpVersion,this._type=props.type,this._vpnConcentratorId=props.vpnConcentratorId,this._vpnGatewayId=cdk().getRefProperty(props.vpnGatewayId?.vpnGatewayRef,"vpnGatewayId")??cdk().ensureStringOrUndefined(props.vpnGatewayId,"vpnGatewayId","ec2.IVPNGatewayRef | string"),this._vpnTunnelOptionsSpecifications=props.vpnTunnelOptionsSpecifications}get vpnConnectionRef(){return{vpnConnectionId:this.ref}}get customerGatewayId(){return this._customerGatewayId}set customerGatewayId(value){cdk().traceProperty(this.node,"CustomerGatewayId"),this._customerGatewayId=value}get enableAcceleration(){return this._enableAcceleration}set enableAcceleration(value){cdk().traceProperty(this.node,"EnableAcceleration"),this._enableAcceleration=value}get localIpv4NetworkCidr(){return this._localIpv4NetworkCidr}set localIpv4NetworkCidr(value){cdk().traceProperty(this.node,"LocalIpv4NetworkCidr"),this._localIpv4NetworkCidr=value}get localIpv6NetworkCidr(){return this._localIpv6NetworkCidr}set localIpv6NetworkCidr(value){cdk().traceProperty(this.node,"LocalIpv6NetworkCidr"),this._localIpv6NetworkCidr=value}get outsideIpAddressType(){return this._outsideIpAddressType}set outsideIpAddressType(value){cdk().traceProperty(this.node,"OutsideIpAddressType"),this._outsideIpAddressType=value}get preSharedKeyStorage(){return this._preSharedKeyStorage}set preSharedKeyStorage(value){cdk().traceProperty(this.node,"PreSharedKeyStorage"),this._preSharedKeyStorage=value}get remoteIpv4NetworkCidr(){return this._remoteIpv4NetworkCidr}set remoteIpv4NetworkCidr(value){cdk().traceProperty(this.node,"RemoteIpv4NetworkCidr"),this._remoteIpv4NetworkCidr=value}get remoteIpv6NetworkCidr(){return this._remoteIpv6NetworkCidr}set remoteIpv6NetworkCidr(value){cdk().traceProperty(this.node,"RemoteIpv6NetworkCidr"),this._remoteIpv6NetworkCidr=value}get staticRoutesOnly(){return this._staticRoutesOnly}set staticRoutesOnly(value){cdk().traceProperty(this.node,"StaticRoutesOnly"),this._staticRoutesOnly=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transitGatewayId(){return this._transitGatewayId}set transitGatewayId(value){cdk().traceProperty(this.node,"TransitGatewayId"),this._transitGatewayId=value}get transportTransitGatewayAttachmentId(){return this._transportTransitGatewayAttachmentId}set transportTransitGatewayAttachmentId(value){cdk().traceProperty(this.node,"TransportTransitGatewayAttachmentId"),this._transportTransitGatewayAttachmentId=value}get tunnelBandwidth(){return this._tunnelBandwidth}set tunnelBandwidth(value){cdk().traceProperty(this.node,"TunnelBandwidth"),this._tunnelBandwidth=value}get tunnelInsideIpVersion(){return this._tunnelInsideIpVersion}set tunnelInsideIpVersion(value){cdk().traceProperty(this.node,"TunnelInsideIpVersion"),this._tunnelInsideIpVersion=value}get type(){return this._type}set type(value){cdk().traceProperty(this.node,"Type"),this._type=value}get vpnConcentratorId(){return this._vpnConcentratorId}set vpnConcentratorId(value){cdk().traceProperty(this.node,"VpnConcentratorId"),this._vpnConcentratorId=value}get vpnGatewayId(){return this._vpnGatewayId}set vpnGatewayId(value){cdk().traceProperty(this.node,"VpnGatewayId"),this._vpnGatewayId=value}get vpnTunnelOptionsSpecifications(){return this._vpnTunnelOptionsSpecifications}set vpnTunnelOptionsSpecifications(value){cdk().traceProperty(this.node,"VpnTunnelOptionsSpecifications"),this._vpnTunnelOptionsSpecifications=value}get attrVpnConnectionId(){return cdk().Token.asString(this.getAtt("VpnConnectionId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{customerGatewayId:this._customerGatewayId,enableAcceleration:this._enableAcceleration,localIpv4NetworkCidr:this._localIpv4NetworkCidr,localIpv6NetworkCidr:this._localIpv6NetworkCidr,outsideIpAddressType:this._outsideIpAddressType,preSharedKeyStorage:this._preSharedKeyStorage,remoteIpv4NetworkCidr:this._remoteIpv4NetworkCidr,remoteIpv6NetworkCidr:this._remoteIpv6NetworkCidr,staticRoutesOnly:this._staticRoutesOnly,tags:this.tags.renderTags(),transitGatewayId:this._transitGatewayId,transportTransitGatewayAttachmentId:this._transportTransitGatewayAttachmentId,tunnelBandwidth:this._tunnelBandwidth,tunnelInsideIpVersion:this._tunnelInsideIpVersion,type:this._type,vpnConcentratorId:this._vpnConcentratorId,vpnGatewayId:this._vpnGatewayId,vpnTunnelOptionsSpecifications:this._vpnTunnelOptionsSpecifications}}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",CfnVPNConnection.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPNConnectionPropsToCloudFormation(props)}}exports.CfnVPNConnection=CfnVPNConnection;function CfnVPNConnectionPhase2EncryptionAlgorithmsRequestListValuePropertyValidator(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.wrap('supplied properties not correct for "Phase2EncryptionAlgorithmsRequestListValueProperty"')}function convertCfnVPNConnectionPhase2EncryptionAlgorithmsRequestListValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionPhase2EncryptionAlgorithmsRequestListValuePropertyValidator(properties).assertSuccess(),{Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnVPNConnectionPhase2EncryptionAlgorithmsRequestListValuePropertyFromCloudFormation(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.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionPhase2DHGroupNumbersRequestListValuePropertyValidator(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().validateNumber)(properties.value)),errors.wrap('supplied properties not correct for "Phase2DHGroupNumbersRequestListValueProperty"')}function convertCfnVPNConnectionPhase2DHGroupNumbersRequestListValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionPhase2DHGroupNumbersRequestListValuePropertyValidator(properties).assertSuccess(),{Value:cdk().numberToCloudFormation(properties.value)}):properties}function CfnVPNConnectionPhase2DHGroupNumbersRequestListValuePropertyFromCloudFormation(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.getNumber(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionIKEVersionsRequestListValuePropertyValidator(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.wrap('supplied properties not correct for "IKEVersionsRequestListValueProperty"')}function convertCfnVPNConnectionIKEVersionsRequestListValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionIKEVersionsRequestListValuePropertyValidator(properties).assertSuccess(),{Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnVPNConnectionIKEVersionsRequestListValuePropertyFromCloudFormation(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.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionCloudwatchLogOptionsSpecificationPropertyValidator(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("bgpLogEnabled",cdk().validateBoolean)(properties.bgpLogEnabled)),errors.collect(cdk().propertyValidator("bgpLogGroupArn",cdk().validateString)(properties.bgpLogGroupArn)),errors.collect(cdk().propertyValidator("bgpLogOutputFormat",cdk().validateString)(properties.bgpLogOutputFormat)),errors.collect(cdk().propertyValidator("logEnabled",cdk().validateBoolean)(properties.logEnabled)),errors.collect(cdk().propertyValidator("logGroupArn",cdk().validateString)(properties.logGroupArn)),errors.collect(cdk().propertyValidator("logOutputFormat",cdk().validateString)(properties.logOutputFormat)),errors.wrap('supplied properties not correct for "CloudwatchLogOptionsSpecificationProperty"')}function convertCfnVPNConnectionCloudwatchLogOptionsSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionCloudwatchLogOptionsSpecificationPropertyValidator(properties).assertSuccess(),{BgpLogEnabled:cdk().booleanToCloudFormation(properties.bgpLogEnabled),BgpLogGroupArn:cdk().stringToCloudFormation(properties.bgpLogGroupArn),BgpLogOutputFormat:cdk().stringToCloudFormation(properties.bgpLogOutputFormat),LogEnabled:cdk().booleanToCloudFormation(properties.logEnabled),LogGroupArn:cdk().stringToCloudFormation(properties.logGroupArn),LogOutputFormat:cdk().stringToCloudFormation(properties.logOutputFormat)}):properties}function CfnVPNConnectionCloudwatchLogOptionsSpecificationPropertyFromCloudFormation(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("bgpLogEnabled","BgpLogEnabled",properties.BgpLogEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.BgpLogEnabled):void 0),ret.addPropertyResult("bgpLogGroupArn","BgpLogGroupArn",properties.BgpLogGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.BgpLogGroupArn):void 0),ret.addPropertyResult("bgpLogOutputFormat","BgpLogOutputFormat",properties.BgpLogOutputFormat!=null?cfn_parse().FromCloudFormation.getString(properties.BgpLogOutputFormat):void 0),ret.addPropertyResult("logEnabled","LogEnabled",properties.LogEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.LogEnabled):void 0),ret.addPropertyResult("logGroupArn","LogGroupArn",properties.LogGroupArn!=null?cfn_parse().FromCloudFormation.getString(properties.LogGroupArn):void 0),ret.addPropertyResult("logOutputFormat","LogOutputFormat",properties.LogOutputFormat!=null?cfn_parse().FromCloudFormation.getString(properties.LogOutputFormat):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionVpnTunnelLogOptionsSpecificationPropertyValidator(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("cloudwatchLogOptions",CfnVPNConnectionCloudwatchLogOptionsSpecificationPropertyValidator)(properties.cloudwatchLogOptions)),errors.wrap('supplied properties not correct for "VpnTunnelLogOptionsSpecificationProperty"')}function convertCfnVPNConnectionVpnTunnelLogOptionsSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionVpnTunnelLogOptionsSpecificationPropertyValidator(properties).assertSuccess(),{CloudwatchLogOptions:convertCfnVPNConnectionCloudwatchLogOptionsSpecificationPropertyToCloudFormation(properties.cloudwatchLogOptions)}):properties}function CfnVPNConnectionVpnTunnelLogOptionsSpecificationPropertyFromCloudFormation(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("cloudwatchLogOptions","CloudwatchLogOptions",properties.CloudwatchLogOptions!=null?CfnVPNConnectionCloudwatchLogOptionsSpecificationPropertyFromCloudFormation(properties.CloudwatchLogOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionPhase1DHGroupNumbersRequestListValuePropertyValidator(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().validateNumber)(properties.value)),errors.wrap('supplied properties not correct for "Phase1DHGroupNumbersRequestListValueProperty"')}function convertCfnVPNConnectionPhase1DHGroupNumbersRequestListValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionPhase1DHGroupNumbersRequestListValuePropertyValidator(properties).assertSuccess(),{Value:cdk().numberToCloudFormation(properties.value)}):properties}function CfnVPNConnectionPhase1DHGroupNumbersRequestListValuePropertyFromCloudFormation(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.getNumber(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionPhase2IntegrityAlgorithmsRequestListValuePropertyValidator(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.wrap('supplied properties not correct for "Phase2IntegrityAlgorithmsRequestListValueProperty"')}function convertCfnVPNConnectionPhase2IntegrityAlgorithmsRequestListValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionPhase2IntegrityAlgorithmsRequestListValuePropertyValidator(properties).assertSuccess(),{Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnVPNConnectionPhase2IntegrityAlgorithmsRequestListValuePropertyFromCloudFormation(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.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionPhase1IntegrityAlgorithmsRequestListValuePropertyValidator(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.wrap('supplied properties not correct for "Phase1IntegrityAlgorithmsRequestListValueProperty"')}function convertCfnVPNConnectionPhase1IntegrityAlgorithmsRequestListValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionPhase1IntegrityAlgorithmsRequestListValuePropertyValidator(properties).assertSuccess(),{Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnVPNConnectionPhase1IntegrityAlgorithmsRequestListValuePropertyFromCloudFormation(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.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionPhase1EncryptionAlgorithmsRequestListValuePropertyValidator(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.wrap('supplied properties not correct for "Phase1EncryptionAlgorithmsRequestListValueProperty"')}function convertCfnVPNConnectionPhase1EncryptionAlgorithmsRequestListValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionPhase1EncryptionAlgorithmsRequestListValuePropertyValidator(properties).assertSuccess(),{Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnVPNConnectionPhase1EncryptionAlgorithmsRequestListValuePropertyFromCloudFormation(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.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionVpnTunnelOptionsSpecificationPropertyValidator(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("dpdTimeoutAction",cdk().validateString)(properties.dpdTimeoutAction)),errors.collect(cdk().propertyValidator("dpdTimeoutSeconds",cdk().validateNumber)(properties.dpdTimeoutSeconds)),errors.collect(cdk().propertyValidator("enableTunnelLifecycleControl",cdk().validateBoolean)(properties.enableTunnelLifecycleControl)),errors.collect(cdk().propertyValidator("ikeVersions",cdk().listValidator(CfnVPNConnectionIKEVersionsRequestListValuePropertyValidator))(properties.ikeVersions)),errors.collect(cdk().propertyValidator("logOptions",CfnVPNConnectionVpnTunnelLogOptionsSpecificationPropertyValidator)(properties.logOptions)),errors.collect(cdk().propertyValidator("phase1DhGroupNumbers",cdk().listValidator(CfnVPNConnectionPhase1DHGroupNumbersRequestListValuePropertyValidator))(properties.phase1DhGroupNumbers)),errors.collect(cdk().propertyValidator("phase1EncryptionAlgorithms",cdk().listValidator(CfnVPNConnectionPhase1EncryptionAlgorithmsRequestListValuePropertyValidator))(properties.phase1EncryptionAlgorithms)),errors.collect(cdk().propertyValidator("phase1IntegrityAlgorithms",cdk().listValidator(CfnVPNConnectionPhase1IntegrityAlgorithmsRequestListValuePropertyValidator))(properties.phase1IntegrityAlgorithms)),errors.collect(cdk().propertyValidator("phase1LifetimeSeconds",cdk().validateNumber)(properties.phase1LifetimeSeconds)),errors.collect(cdk().propertyValidator("phase2DhGroupNumbers",cdk().listValidator(CfnVPNConnectionPhase2DHGroupNumbersRequestListValuePropertyValidator))(properties.phase2DhGroupNumbers)),errors.collect(cdk().propertyValidator("phase2EncryptionAlgorithms",cdk().listValidator(CfnVPNConnectionPhase2EncryptionAlgorithmsRequestListValuePropertyValidator))(properties.phase2EncryptionAlgorithms)),errors.collect(cdk().propertyValidator("phase2IntegrityAlgorithms",cdk().listValidator(CfnVPNConnectionPhase2IntegrityAlgorithmsRequestListValuePropertyValidator))(properties.phase2IntegrityAlgorithms)),errors.collect(cdk().propertyValidator("phase2LifetimeSeconds",cdk().validateNumber)(properties.phase2LifetimeSeconds)),errors.collect(cdk().propertyValidator("preSharedKey",cdk().validateString)(properties.preSharedKey)),errors.collect(cdk().propertyValidator("rekeyFuzzPercentage",cdk().validateNumber)(properties.rekeyFuzzPercentage)),errors.collect(cdk().propertyValidator("rekeyMarginTimeSeconds",cdk().validateNumber)(properties.rekeyMarginTimeSeconds)),errors.collect(cdk().propertyValidator("replayWindowSize",cdk().validateNumber)(properties.replayWindowSize)),errors.collect(cdk().propertyValidator("startupAction",cdk().validateString)(properties.startupAction)),errors.collect(cdk().propertyValidator("tunnelInsideCidr",cdk().validateString)(properties.tunnelInsideCidr)),errors.collect(cdk().propertyValidator("tunnelInsideIpv6Cidr",cdk().validateString)(properties.tunnelInsideIpv6Cidr)),errors.wrap('supplied properties not correct for "VpnTunnelOptionsSpecificationProperty"')}function convertCfnVPNConnectionVpnTunnelOptionsSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionVpnTunnelOptionsSpecificationPropertyValidator(properties).assertSuccess(),{DPDTimeoutAction:cdk().stringToCloudFormation(properties.dpdTimeoutAction),DPDTimeoutSeconds:cdk().numberToCloudFormation(properties.dpdTimeoutSeconds),EnableTunnelLifecycleControl:cdk().booleanToCloudFormation(properties.enableTunnelLifecycleControl),IKEVersions:cdk().listMapper(convertCfnVPNConnectionIKEVersionsRequestListValuePropertyToCloudFormation)(properties.ikeVersions),LogOptions:convertCfnVPNConnectionVpnTunnelLogOptionsSpecificationPropertyToCloudFormation(properties.logOptions),Phase1DHGroupNumbers:cdk().listMapper(convertCfnVPNConnectionPhase1DHGroupNumbersRequestListValuePropertyToCloudFormation)(properties.phase1DhGroupNumbers),Phase1EncryptionAlgorithms:cdk().listMapper(convertCfnVPNConnectionPhase1EncryptionAlgorithmsRequestListValuePropertyToCloudFormation)(properties.phase1EncryptionAlgorithms),Phase1IntegrityAlgorithms:cdk().listMapper(convertCfnVPNConnectionPhase1IntegrityAlgorithmsRequestListValuePropertyToCloudFormation)(properties.phase1IntegrityAlgorithms),Phase1LifetimeSeconds:cdk().numberToCloudFormation(properties.phase1LifetimeSeconds),Phase2DHGroupNumbers:cdk().listMapper(convertCfnVPNConnectionPhase2DHGroupNumbersRequestListValuePropertyToCloudFormation)(properties.phase2DhGroupNumbers),Phase2EncryptionAlgorithms:cdk().listMapper(convertCfnVPNConnectionPhase2EncryptionAlgorithmsRequestListValuePropertyToCloudFormation)(properties.phase2EncryptionAlgorithms),Phase2IntegrityAlgorithms:cdk().listMapper(convertCfnVPNConnectionPhase2IntegrityAlgorithmsRequestListValuePropertyToCloudFormation)(properties.phase2IntegrityAlgorithms),Phase2LifetimeSeconds:cdk().numberToCloudFormation(properties.phase2LifetimeSeconds),PreSharedKey:cdk().stringToCloudFormation(properties.preSharedKey),RekeyFuzzPercentage:cdk().numberToCloudFormation(properties.rekeyFuzzPercentage),RekeyMarginTimeSeconds:cdk().numberToCloudFormation(properties.rekeyMarginTimeSeconds),ReplayWindowSize:cdk().numberToCloudFormation(properties.replayWindowSize),StartupAction:cdk().stringToCloudFormation(properties.startupAction),TunnelInsideCidr:cdk().stringToCloudFormation(properties.tunnelInsideCidr),TunnelInsideIpv6Cidr:cdk().stringToCloudFormation(properties.tunnelInsideIpv6Cidr)}):properties}function CfnVPNConnectionVpnTunnelOptionsSpecificationPropertyFromCloudFormation(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("dpdTimeoutAction","DPDTimeoutAction",properties.DPDTimeoutAction!=null?cfn_parse().FromCloudFormation.getString(properties.DPDTimeoutAction):void 0),ret.addPropertyResult("dpdTimeoutSeconds","DPDTimeoutSeconds",properties.DPDTimeoutSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.DPDTimeoutSeconds):void 0),ret.addPropertyResult("enableTunnelLifecycleControl","EnableTunnelLifecycleControl",properties.EnableTunnelLifecycleControl!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableTunnelLifecycleControl):void 0),ret.addPropertyResult("ikeVersions","IKEVersions",properties.IKEVersions!=null?cfn_parse().FromCloudFormation.getArray(CfnVPNConnectionIKEVersionsRequestListValuePropertyFromCloudFormation)(properties.IKEVersions):void 0),ret.addPropertyResult("logOptions","LogOptions",properties.LogOptions!=null?CfnVPNConnectionVpnTunnelLogOptionsSpecificationPropertyFromCloudFormation(properties.LogOptions):void 0),ret.addPropertyResult("phase1DhGroupNumbers","Phase1DHGroupNumbers",properties.Phase1DHGroupNumbers!=null?cfn_parse().FromCloudFormation.getArray(CfnVPNConnectionPhase1DHGroupNumbersRequestListValuePropertyFromCloudFormation)(properties.Phase1DHGroupNumbers):void 0),ret.addPropertyResult("phase1EncryptionAlgorithms","Phase1EncryptionAlgorithms",properties.Phase1EncryptionAlgorithms!=null?cfn_parse().FromCloudFormation.getArray(CfnVPNConnectionPhase1EncryptionAlgorithmsRequestListValuePropertyFromCloudFormation)(properties.Phase1EncryptionAlgorithms):void 0),ret.addPropertyResult("phase1IntegrityAlgorithms","Phase1IntegrityAlgorithms",properties.Phase1IntegrityAlgorithms!=null?cfn_parse().FromCloudFormation.getArray(CfnVPNConnectionPhase1IntegrityAlgorithmsRequestListValuePropertyFromCloudFormation)(properties.Phase1IntegrityAlgorithms):void 0),ret.addPropertyResult("phase1LifetimeSeconds","Phase1LifetimeSeconds",properties.Phase1LifetimeSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.Phase1LifetimeSeconds):void 0),ret.addPropertyResult("phase2DhGroupNumbers","Phase2DHGroupNumbers",properties.Phase2DHGroupNumbers!=null?cfn_parse().FromCloudFormation.getArray(CfnVPNConnectionPhase2DHGroupNumbersRequestListValuePropertyFromCloudFormation)(properties.Phase2DHGroupNumbers):void 0),ret.addPropertyResult("phase2EncryptionAlgorithms","Phase2EncryptionAlgorithms",properties.Phase2EncryptionAlgorithms!=null?cfn_parse().FromCloudFormation.getArray(CfnVPNConnectionPhase2EncryptionAlgorithmsRequestListValuePropertyFromCloudFormation)(properties.Phase2EncryptionAlgorithms):void 0),ret.addPropertyResult("phase2IntegrityAlgorithms","Phase2IntegrityAlgorithms",properties.Phase2IntegrityAlgorithms!=null?cfn_parse().FromCloudFormation.getArray(CfnVPNConnectionPhase2IntegrityAlgorithmsRequestListValuePropertyFromCloudFormation)(properties.Phase2IntegrityAlgorithms):void 0),ret.addPropertyResult("phase2LifetimeSeconds","Phase2LifetimeSeconds",properties.Phase2LifetimeSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.Phase2LifetimeSeconds):void 0),ret.addPropertyResult("preSharedKey","PreSharedKey",properties.PreSharedKey!=null?cfn_parse().FromCloudFormation.getString(properties.PreSharedKey):void 0),ret.addPropertyResult("rekeyFuzzPercentage","RekeyFuzzPercentage",properties.RekeyFuzzPercentage!=null?cfn_parse().FromCloudFormation.getNumber(properties.RekeyFuzzPercentage):void 0),ret.addPropertyResult("rekeyMarginTimeSeconds","RekeyMarginTimeSeconds",properties.RekeyMarginTimeSeconds!=null?cfn_parse().FromCloudFormation.getNumber(properties.RekeyMarginTimeSeconds):void 0),ret.addPropertyResult("replayWindowSize","ReplayWindowSize",properties.ReplayWindowSize!=null?cfn_parse().FromCloudFormation.getNumber(properties.ReplayWindowSize):void 0),ret.addPropertyResult("startupAction","StartupAction",properties.StartupAction!=null?cfn_parse().FromCloudFormation.getString(properties.StartupAction):void 0),ret.addPropertyResult("tunnelInsideCidr","TunnelInsideCidr",properties.TunnelInsideCidr!=null?cfn_parse().FromCloudFormation.getString(properties.TunnelInsideCidr):void 0),ret.addPropertyResult("tunnelInsideIpv6Cidr","TunnelInsideIpv6Cidr",properties.TunnelInsideIpv6Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.TunnelInsideIpv6Cidr):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionPropsValidator(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("customerGatewayId",cdk().requiredValidator)(properties.customerGatewayId)),errors.collect(cdk().propertyValidator("customerGatewayId",cdk().validateString)(properties.customerGatewayId)),errors.collect(cdk().propertyValidator("enableAcceleration",cdk().validateBoolean)(properties.enableAcceleration)),errors.collect(cdk().propertyValidator("localIpv4NetworkCidr",cdk().validateString)(properties.localIpv4NetworkCidr)),errors.collect(cdk().propertyValidator("localIpv6NetworkCidr",cdk().validateString)(properties.localIpv6NetworkCidr)),errors.collect(cdk().propertyValidator("outsideIpAddressType",cdk().validateString)(properties.outsideIpAddressType)),errors.collect(cdk().propertyValidator("preSharedKeyStorage",cdk().validateString)(properties.preSharedKeyStorage)),errors.collect(cdk().propertyValidator("remoteIpv4NetworkCidr",cdk().validateString)(properties.remoteIpv4NetworkCidr)),errors.collect(cdk().propertyValidator("remoteIpv6NetworkCidr",cdk().validateString)(properties.remoteIpv6NetworkCidr)),errors.collect(cdk().propertyValidator("staticRoutesOnly",cdk().validateBoolean)(properties.staticRoutesOnly)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().validateString)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("transportTransitGatewayAttachmentId",cdk().validateString)(properties.transportTransitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("tunnelBandwidth",cdk().validateString)(properties.tunnelBandwidth)),errors.collect(cdk().propertyValidator("tunnelInsideIpVersion",cdk().validateString)(properties.tunnelInsideIpVersion)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.collect(cdk().propertyValidator("vpnConcentratorId",cdk().validateString)(properties.vpnConcentratorId)),errors.collect(cdk().propertyValidator("vpnGatewayId",cdk().validateString)(properties.vpnGatewayId)),errors.collect(cdk().propertyValidator("vpnTunnelOptionsSpecifications",cdk().listValidator(CfnVPNConnectionVpnTunnelOptionsSpecificationPropertyValidator))(properties.vpnTunnelOptionsSpecifications)),errors.wrap('supplied properties not correct for "CfnVPNConnectionProps"')}function convertCfnVPNConnectionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionPropsValidator(properties).assertSuccess(),{CustomerGatewayId:cdk().stringToCloudFormation(properties.customerGatewayId),EnableAcceleration:cdk().booleanToCloudFormation(properties.enableAcceleration),LocalIpv4NetworkCidr:cdk().stringToCloudFormation(properties.localIpv4NetworkCidr),LocalIpv6NetworkCidr:cdk().stringToCloudFormation(properties.localIpv6NetworkCidr),OutsideIpAddressType:cdk().stringToCloudFormation(properties.outsideIpAddressType),PreSharedKeyStorage:cdk().stringToCloudFormation(properties.preSharedKeyStorage),RemoteIpv4NetworkCidr:cdk().stringToCloudFormation(properties.remoteIpv4NetworkCidr),RemoteIpv6NetworkCidr:cdk().stringToCloudFormation(properties.remoteIpv6NetworkCidr),StaticRoutesOnly:cdk().booleanToCloudFormation(properties.staticRoutesOnly),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayId:cdk().stringToCloudFormation(properties.transitGatewayId),TransportTransitGatewayAttachmentId:cdk().stringToCloudFormation(properties.transportTransitGatewayAttachmentId),TunnelBandwidth:cdk().stringToCloudFormation(properties.tunnelBandwidth),TunnelInsideIpVersion:cdk().stringToCloudFormation(properties.tunnelInsideIpVersion),Type:cdk().stringToCloudFormation(properties.type),VpnConcentratorId:cdk().stringToCloudFormation(properties.vpnConcentratorId),VpnGatewayId:cdk().stringToCloudFormation(properties.vpnGatewayId),VpnTunnelOptionsSpecifications:cdk().listMapper(convertCfnVPNConnectionVpnTunnelOptionsSpecificationPropertyToCloudFormation)(properties.vpnTunnelOptionsSpecifications)}):properties}function CfnVPNConnectionPropsFromCloudFormation(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("customerGatewayId","CustomerGatewayId",properties.CustomerGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.CustomerGatewayId):void 0),ret.addPropertyResult("enableAcceleration","EnableAcceleration",properties.EnableAcceleration!=null?cfn_parse().FromCloudFormation.getBoolean(properties.EnableAcceleration):void 0),ret.addPropertyResult("localIpv4NetworkCidr","LocalIpv4NetworkCidr",properties.LocalIpv4NetworkCidr!=null?cfn_parse().FromCloudFormation.getString(properties.LocalIpv4NetworkCidr):void 0),ret.addPropertyResult("localIpv6NetworkCidr","LocalIpv6NetworkCidr",properties.LocalIpv6NetworkCidr!=null?cfn_parse().FromCloudFormation.getString(properties.LocalIpv6NetworkCidr):void 0),ret.addPropertyResult("outsideIpAddressType","OutsideIpAddressType",properties.OutsideIpAddressType!=null?cfn_parse().FromCloudFormation.getString(properties.OutsideIpAddressType):void 0),ret.addPropertyResult("preSharedKeyStorage","PreSharedKeyStorage",properties.PreSharedKeyStorage!=null?cfn_parse().FromCloudFormation.getString(properties.PreSharedKeyStorage):void 0),ret.addPropertyResult("remoteIpv4NetworkCidr","RemoteIpv4NetworkCidr",properties.RemoteIpv4NetworkCidr!=null?cfn_parse().FromCloudFormation.getString(properties.RemoteIpv4NetworkCidr):void 0),ret.addPropertyResult("remoteIpv6NetworkCidr","RemoteIpv6NetworkCidr",properties.RemoteIpv6NetworkCidr!=null?cfn_parse().FromCloudFormation.getString(properties.RemoteIpv6NetworkCidr):void 0),ret.addPropertyResult("staticRoutesOnly","StaticRoutesOnly",properties.StaticRoutesOnly!=null?cfn_parse().FromCloudFormation.getBoolean(properties.StaticRoutesOnly):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("transportTransitGatewayAttachmentId","TransportTransitGatewayAttachmentId",properties.TransportTransitGatewayAttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.TransportTransitGatewayAttachmentId):void 0),ret.addPropertyResult("tunnelBandwidth","TunnelBandwidth",properties.TunnelBandwidth!=null?cfn_parse().FromCloudFormation.getString(properties.TunnelBandwidth):void 0),ret.addPropertyResult("tunnelInsideIpVersion","TunnelInsideIpVersion",properties.TunnelInsideIpVersion!=null?cfn_parse().FromCloudFormation.getString(properties.TunnelInsideIpVersion):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("vpnConcentratorId","VpnConcentratorId",properties.VpnConcentratorId!=null?cfn_parse().FromCloudFormation.getString(properties.VpnConcentratorId):void 0),ret.addPropertyResult("vpnGatewayId","VpnGatewayId",properties.VpnGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.VpnGatewayId):void 0),ret.addPropertyResult("vpnTunnelOptionsSpecifications","VpnTunnelOptionsSpecifications",properties.VpnTunnelOptionsSpecifications!=null?cfn_parse().FromCloudFormation.getArray(CfnVPNConnectionVpnTunnelOptionsSpecificationPropertyFromCloudFormation)(properties.VpnTunnelOptionsSpecifications):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPNConnectionRoute extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNConnectionRoute",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNConnectionRoute";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNConnectionRoutePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPNConnectionRoute(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 isCfnVPNConnectionRoute(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPNConnectionRoute.CFN_RESOURCE_TYPE_NAME}_destinationCidrBlock;_vpnConnectionId;cfnPropertyNames={destinationCidrBlock:"DestinationCidrBlock",vpnConnectionId:"VpnConnectionId"};constructor(scope,id,props){super(scope,id,{type:CfnVPNConnectionRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPNConnectionRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNConnectionRoute),error}cdk().requireProperty(props,"destinationCidrBlock",this),cdk().requireProperty(props,"vpnConnectionId",this),this._destinationCidrBlock=props.destinationCidrBlock,this._vpnConnectionId=cdk().getRefProperty(props.vpnConnectionId?.vpnConnectionRef,"vpnConnectionId")??cdk().ensureStringOrUndefined(props.vpnConnectionId,"vpnConnectionId","ec2.IVPNConnectionRef | string")}get vpnConnectionRouteRef(){return{destinationCidrBlock:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),vpnConnectionId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get destinationCidrBlock(){return this._destinationCidrBlock}set destinationCidrBlock(value){cdk().traceProperty(this.node,"DestinationCidrBlock"),this._destinationCidrBlock=value}get vpnConnectionId(){return this._vpnConnectionId}set vpnConnectionId(value){cdk().traceProperty(this.node,"VpnConnectionId"),this._vpnConnectionId=value}get cfnProperties(){return{destinationCidrBlock:this._destinationCidrBlock,vpnConnectionId:this._vpnConnectionId}}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",CfnVPNConnectionRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPNConnectionRoutePropsToCloudFormation(props)}}exports.CfnVPNConnectionRoute=CfnVPNConnectionRoute;function CfnVPNConnectionRoutePropsValidator(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("destinationCidrBlock",cdk().requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("destinationCidrBlock",cdk().validateString)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("vpnConnectionId",cdk().requiredValidator)(properties.vpnConnectionId)),errors.collect(cdk().propertyValidator("vpnConnectionId",cdk().validateString)(properties.vpnConnectionId)),errors.wrap('supplied properties not correct for "CfnVPNConnectionRouteProps"')}function convertCfnVPNConnectionRoutePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConnectionRoutePropsValidator(properties).assertSuccess(),{DestinationCidrBlock:cdk().stringToCloudFormation(properties.destinationCidrBlock),VpnConnectionId:cdk().stringToCloudFormation(properties.vpnConnectionId)}):properties}function CfnVPNConnectionRoutePropsFromCloudFormation(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("destinationCidrBlock","DestinationCidrBlock",properties.DestinationCidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationCidrBlock):void 0),ret.addPropertyResult("vpnConnectionId","VpnConnectionId",properties.VpnConnectionId!=null?cfn_parse().FromCloudFormation.getString(properties.VpnConnectionId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPNGateway extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNGateway",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNGateway";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNGatewayPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPNGateway(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 isCfnVPNGateway(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPNGateway.CFN_RESOURCE_TYPE_NAME}static fromVpnGatewayId(scope,id,vpnGatewayId){class Import extends cdk().Resource{vpnGatewayRef;constructor(scope2,id2,vpnGatewayId2){super(scope2,id2),this.vpnGatewayRef={vpnGatewayId:vpnGatewayId2}}}return new Import(scope,id,vpnGatewayId)}static arnForVPNGateway(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVPNGatewayRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVPNGateway),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:vpn-gateway/${VpnGatewayId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,VpnGatewayId:resource.vpnGatewayRef.vpnGatewayId})}_amazonSideAsn;tags;_tagsRaw;_type;cfnPropertyNames={amazonSideAsn:"AmazonSideAsn",tags:"Tags",type:"Type"};constructor(scope,id,props){super(scope,id,{type:CfnVPNGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPNGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNGateway),error}cdk().requireProperty(props,"type",this),this._amazonSideAsn=props.amazonSideAsn,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VPNGateway",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._type=props.type}get vpnGatewayRef(){return{vpnGatewayId:this.ref}}get amazonSideAsn(){return this._amazonSideAsn}set amazonSideAsn(value){cdk().traceProperty(this.node,"AmazonSideAsn"),this._amazonSideAsn=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get type(){return this._type}set type(value){cdk().traceProperty(this.node,"Type"),this._type=value}get attrVpnGatewayId(){return cdk().Token.asString(this.getAtt("VPNGatewayId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{amazonSideAsn:this._amazonSideAsn,tags:this.tags.renderTags(),type:this._type}}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",CfnVPNGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPNGatewayPropsToCloudFormation(props)}}exports.CfnVPNGateway=CfnVPNGateway;function CfnVPNGatewayPropsValidator(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("amazonSideAsn",cdk().validateNumber)(properties.amazonSideAsn)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),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 "CfnVPNGatewayProps"')}function convertCfnVPNGatewayPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNGatewayPropsValidator(properties).assertSuccess(),{AmazonSideAsn:cdk().numberToCloudFormation(properties.amazonSideAsn),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnVPNGatewayPropsFromCloudFormation(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("amazonSideAsn","AmazonSideAsn",properties.AmazonSideAsn!=null?cfn_parse().FromCloudFormation.getNumber(properties.AmazonSideAsn):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPNGatewayRoutePropagation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNGatewayRoutePropagation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNGatewayRoutePropagation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNGatewayRoutePropagationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPNGatewayRoutePropagation(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 isCfnVPNGatewayRoutePropagation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPNGatewayRoutePropagation.CFN_RESOURCE_TYPE_NAME}_routeTableIds;_vpnGatewayId;cfnPropertyNames={routeTableIds:"RouteTableIds",vpnGatewayId:"VpnGatewayId"};constructor(scope,id,props){super(scope,id,{type:CfnVPNGatewayRoutePropagation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPNGatewayRoutePropagationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNGatewayRoutePropagation),error}cdk().requireProperty(props,"routeTableIds",this),cdk().requireProperty(props,"vpnGatewayId",this),this._routeTableIds=props.routeTableIds,this._vpnGatewayId=props.vpnGatewayId}get vpnGatewayRoutePropagationRef(){return{vpnGatewayRoutePropagationId:this.ref}}get routeTableIds(){return this._routeTableIds}set routeTableIds(value){cdk().traceProperty(this.node,"RouteTableIds"),this._routeTableIds=value}get vpnGatewayId(){return this._vpnGatewayId}set vpnGatewayId(value){cdk().traceProperty(this.node,"VpnGatewayId"),this._vpnGatewayId=value}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{routeTableIds:this._routeTableIds,vpnGatewayId:this._vpnGatewayId}}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",CfnVPNGatewayRoutePropagation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPNGatewayRoutePropagationPropsToCloudFormation(props)}}exports.CfnVPNGatewayRoutePropagation=CfnVPNGatewayRoutePropagation;function CfnVPNGatewayRoutePropagationPropsValidator(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("routeTableIds",cdk().requiredValidator)(properties.routeTableIds)),errors.collect(cdk().propertyValidator("routeTableIds",cdk().listValidator(cdk().validateString))(properties.routeTableIds)),errors.collect(cdk().propertyValidator("vpnGatewayId",cdk().requiredValidator)(properties.vpnGatewayId)),errors.collect(cdk().propertyValidator("vpnGatewayId",cdk().validateString)(properties.vpnGatewayId)),errors.wrap('supplied properties not correct for "CfnVPNGatewayRoutePropagationProps"')}function convertCfnVPNGatewayRoutePropagationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNGatewayRoutePropagationPropsValidator(properties).assertSuccess(),{RouteTableIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.routeTableIds),VpnGatewayId:cdk().stringToCloudFormation(properties.vpnGatewayId)}):properties}function CfnVPNGatewayRoutePropagationPropsFromCloudFormation(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("routeTableIds","RouteTableIds",properties.RouteTableIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.RouteTableIds):void 0),ret.addPropertyResult("vpnGatewayId","VpnGatewayId",properties.VpnGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.VpnGatewayId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVerifiedAccessEndpoint extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVerifiedAccessEndpoint",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VerifiedAccessEndpoint";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVerifiedAccessEndpointPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVerifiedAccessEndpoint(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 isCfnVerifiedAccessEndpoint(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVerifiedAccessEndpoint.CFN_RESOURCE_TYPE_NAME}static fromVerifiedAccessEndpointId(scope,id,verifiedAccessEndpointId){class Import extends cdk().Resource{verifiedAccessEndpointRef;constructor(scope2,id2,verifiedAccessEndpointId2){super(scope2,id2),this.verifiedAccessEndpointRef={verifiedAccessEndpointId:verifiedAccessEndpointId2}}}return new Import(scope,id,verifiedAccessEndpointId)}static arnForVerifiedAccessEndpoint(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVerifiedAccessEndpointRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVerifiedAccessEndpoint),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:verified-access-endpoint/${VerifiedAccessEndpointId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,VerifiedAccessEndpointId:resource.verifiedAccessEndpointRef.verifiedAccessEndpointId})}_applicationDomain;_attachmentType;_cidrOptions;_description;_domainCertificateArn;_endpointDomainPrefix;_endpointType;_loadBalancerOptions;_networkInterfaceOptions;_policyDocument;_policyEnabled;_rdsOptions;_securityGroupIds;_sseSpecification;tags;_tagsRaw;_verifiedAccessGroupId;cfnPropertyNames={applicationDomain:"ApplicationDomain",attachmentType:"AttachmentType",cidrOptions:"CidrOptions",description:"Description",domainCertificateArn:"DomainCertificateArn",endpointDomainPrefix:"EndpointDomainPrefix",endpointType:"EndpointType",loadBalancerOptions:"LoadBalancerOptions",networkInterfaceOptions:"NetworkInterfaceOptions",policyDocument:"PolicyDocument",policyEnabled:"PolicyEnabled",rdsOptions:"RdsOptions",securityGroupIds:"SecurityGroupIds",sseSpecification:"SseSpecification",tags:"Tags",verifiedAccessGroupId:"VerifiedAccessGroupId"};constructor(scope,id,props){super(scope,id,{type:CfnVerifiedAccessEndpoint.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVerifiedAccessEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVerifiedAccessEndpoint),error}cdk().requireProperty(props,"attachmentType",this),cdk().requireProperty(props,"endpointType",this),cdk().requireProperty(props,"verifiedAccessGroupId",this),this._applicationDomain=props.applicationDomain,this._attachmentType=props.attachmentType,this._cidrOptions=props.cidrOptions,this._description=props.description,this._domainCertificateArn=props.domainCertificateArn,this._endpointDomainPrefix=props.endpointDomainPrefix,this._endpointType=props.endpointType,this._loadBalancerOptions=props.loadBalancerOptions,this._networkInterfaceOptions=props.networkInterfaceOptions,this._policyDocument=props.policyDocument,this._policyEnabled=props.policyEnabled,this._rdsOptions=props.rdsOptions,this._securityGroupIds=props.securityGroupIds,this._sseSpecification=props.sseSpecification,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VerifiedAccessEndpoint",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._verifiedAccessGroupId=props.verifiedAccessGroupId}get verifiedAccessEndpointRef(){return{verifiedAccessEndpointId:this.ref}}get applicationDomain(){return this._applicationDomain}set applicationDomain(value){cdk().traceProperty(this.node,"ApplicationDomain"),this._applicationDomain=value}get attachmentType(){return this._attachmentType}set attachmentType(value){cdk().traceProperty(this.node,"AttachmentType"),this._attachmentType=value}get cidrOptions(){return this._cidrOptions}set cidrOptions(value){cdk().traceProperty(this.node,"CidrOptions"),this._cidrOptions=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get domainCertificateArn(){return this._domainCertificateArn}set domainCertificateArn(value){cdk().traceProperty(this.node,"DomainCertificateArn"),this._domainCertificateArn=value}get endpointDomainPrefix(){return this._endpointDomainPrefix}set endpointDomainPrefix(value){cdk().traceProperty(this.node,"EndpointDomainPrefix"),this._endpointDomainPrefix=value}get endpointType(){return this._endpointType}set endpointType(value){cdk().traceProperty(this.node,"EndpointType"),this._endpointType=value}get loadBalancerOptions(){return this._loadBalancerOptions}set loadBalancerOptions(value){cdk().traceProperty(this.node,"LoadBalancerOptions"),this._loadBalancerOptions=value}get networkInterfaceOptions(){return this._networkInterfaceOptions}set networkInterfaceOptions(value){cdk().traceProperty(this.node,"NetworkInterfaceOptions"),this._networkInterfaceOptions=value}get policyDocument(){return this._policyDocument}set policyDocument(value){cdk().traceProperty(this.node,"PolicyDocument"),this._policyDocument=value}get policyEnabled(){return this._policyEnabled}set policyEnabled(value){cdk().traceProperty(this.node,"PolicyEnabled"),this._policyEnabled=value}get rdsOptions(){return this._rdsOptions}set rdsOptions(value){cdk().traceProperty(this.node,"RdsOptions"),this._rdsOptions=value}get securityGroupIds(){return this._securityGroupIds}set securityGroupIds(value){cdk().traceProperty(this.node,"SecurityGroupIds"),this._securityGroupIds=value}get sseSpecification(){return this._sseSpecification}set sseSpecification(value){cdk().traceProperty(this.node,"SseSpecification"),this._sseSpecification=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get verifiedAccessGroupId(){return this._verifiedAccessGroupId}set verifiedAccessGroupId(value){cdk().traceProperty(this.node,"VerifiedAccessGroupId"),this._verifiedAccessGroupId=value}get attrCreationTime(){return cdk().Token.asString(this.getAtt("CreationTime",cdk().ResolutionTypeHint.STRING))}get attrDeviceValidationDomain(){return cdk().Token.asString(this.getAtt("DeviceValidationDomain",cdk().ResolutionTypeHint.STRING))}get attrEndpointDomain(){return cdk().Token.asString(this.getAtt("EndpointDomain",cdk().ResolutionTypeHint.STRING))}get attrLastUpdatedTime(){return cdk().Token.asString(this.getAtt("LastUpdatedTime",cdk().ResolutionTypeHint.STRING))}get attrStatus(){return cdk().Token.asString(this.getAtt("Status",cdk().ResolutionTypeHint.STRING))}get attrVerifiedAccessEndpointId(){return cdk().Token.asString(this.getAtt("VerifiedAccessEndpointId",cdk().ResolutionTypeHint.STRING))}get attrVerifiedAccessInstanceId(){return cdk().Token.asString(this.getAtt("VerifiedAccessInstanceId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{applicationDomain:this._applicationDomain,attachmentType:this._attachmentType,cidrOptions:this._cidrOptions,description:this._description,domainCertificateArn:this._domainCertificateArn,endpointDomainPrefix:this._endpointDomainPrefix,endpointType:this._endpointType,loadBalancerOptions:this._loadBalancerOptions,networkInterfaceOptions:this._networkInterfaceOptions,policyDocument:this._policyDocument,policyEnabled:this._policyEnabled,rdsOptions:this._rdsOptions,securityGroupIds:this._securityGroupIds,sseSpecification:this._sseSpecification,tags:this.tags.renderTags(),verifiedAccessGroupId:this._verifiedAccessGroupId}}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",CfnVerifiedAccessEndpoint.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVerifiedAccessEndpointPropsToCloudFormation(props)}}exports.CfnVerifiedAccessEndpoint=CfnVerifiedAccessEndpoint;function CfnVerifiedAccessEndpointPortRangePropertyValidator(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("fromPort",cdk().validateNumber)(properties.fromPort)),errors.collect(cdk().propertyValidator("toPort",cdk().validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "PortRangeProperty"')}function convertCfnVerifiedAccessEndpointPortRangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessEndpointPortRangePropertyValidator(properties).assertSuccess(),{FromPort:cdk().numberToCloudFormation(properties.fromPort),ToPort:cdk().numberToCloudFormation(properties.toPort)}):properties}function CfnVerifiedAccessEndpointPortRangePropertyFromCloudFormation(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("fromPort","FromPort",properties.FromPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse().FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessEndpointLoadBalancerOptionsPropertyValidator(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("loadBalancerArn",cdk().validateString)(properties.loadBalancerArn)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("portRanges",cdk().listValidator(CfnVerifiedAccessEndpointPortRangePropertyValidator))(properties.portRanges)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("subnetIds",cdk().listValidator(cdk().validateString))(properties.subnetIds)),errors.wrap('supplied properties not correct for "LoadBalancerOptionsProperty"')}function convertCfnVerifiedAccessEndpointLoadBalancerOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessEndpointLoadBalancerOptionsPropertyValidator(properties).assertSuccess(),{LoadBalancerArn:cdk().stringToCloudFormation(properties.loadBalancerArn),Port:cdk().numberToCloudFormation(properties.port),PortRanges:cdk().listMapper(convertCfnVerifiedAccessEndpointPortRangePropertyToCloudFormation)(properties.portRanges),Protocol:cdk().stringToCloudFormation(properties.protocol),SubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnetIds)}):properties}function CfnVerifiedAccessEndpointLoadBalancerOptionsPropertyFromCloudFormation(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("loadBalancerArn","LoadBalancerArn",properties.LoadBalancerArn!=null?cfn_parse().FromCloudFormation.getString(properties.LoadBalancerArn):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("portRanges","PortRanges",properties.PortRanges!=null?cfn_parse().FromCloudFormation.getArray(CfnVerifiedAccessEndpointPortRangePropertyFromCloudFormation)(properties.PortRanges):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("subnetIds","SubnetIds",properties.SubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SubnetIds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessEndpointNetworkInterfaceOptionsPropertyValidator(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("networkInterfaceId",cdk().validateString)(properties.networkInterfaceId)),errors.collect(cdk().propertyValidator("port",cdk().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("portRanges",cdk().listValidator(CfnVerifiedAccessEndpointPortRangePropertyValidator))(properties.portRanges)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "NetworkInterfaceOptionsProperty"')}function convertCfnVerifiedAccessEndpointNetworkInterfaceOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessEndpointNetworkInterfaceOptionsPropertyValidator(properties).assertSuccess(),{NetworkInterfaceId:cdk().stringToCloudFormation(properties.networkInterfaceId),Port:cdk().numberToCloudFormation(properties.port),PortRanges:cdk().listMapper(convertCfnVerifiedAccessEndpointPortRangePropertyToCloudFormation)(properties.portRanges),Protocol:cdk().stringToCloudFormation(properties.protocol)}):properties}function CfnVerifiedAccessEndpointNetworkInterfaceOptionsPropertyFromCloudFormation(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("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse().FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("portRanges","PortRanges",properties.PortRanges!=null?cfn_parse().FromCloudFormation.getArray(CfnVerifiedAccessEndpointPortRangePropertyFromCloudFormation)(properties.PortRanges):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessEndpointRdsOptionsPropertyValidator(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().validateNumber)(properties.port)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("rdsDbClusterArn",cdk().validateString)(properties.rdsDbClusterArn)),errors.collect(cdk().propertyValidator("rdsDbInstanceArn",cdk().validateString)(properties.rdsDbInstanceArn)),errors.collect(cdk().propertyValidator("rdsDbProxyArn",cdk().validateString)(properties.rdsDbProxyArn)),errors.collect(cdk().propertyValidator("rdsEndpoint",cdk().validateString)(properties.rdsEndpoint)),errors.collect(cdk().propertyValidator("subnetIds",cdk().listValidator(cdk().validateString))(properties.subnetIds)),errors.wrap('supplied properties not correct for "RdsOptionsProperty"')}function convertCfnVerifiedAccessEndpointRdsOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessEndpointRdsOptionsPropertyValidator(properties).assertSuccess(),{Port:cdk().numberToCloudFormation(properties.port),Protocol:cdk().stringToCloudFormation(properties.protocol),RdsDbClusterArn:cdk().stringToCloudFormation(properties.rdsDbClusterArn),RdsDbInstanceArn:cdk().stringToCloudFormation(properties.rdsDbInstanceArn),RdsDbProxyArn:cdk().stringToCloudFormation(properties.rdsDbProxyArn),RdsEndpoint:cdk().stringToCloudFormation(properties.rdsEndpoint),SubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnetIds)}):properties}function CfnVerifiedAccessEndpointRdsOptionsPropertyFromCloudFormation(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.getNumber(properties.Port):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("rdsDbClusterArn","RdsDbClusterArn",properties.RdsDbClusterArn!=null?cfn_parse().FromCloudFormation.getString(properties.RdsDbClusterArn):void 0),ret.addPropertyResult("rdsDbInstanceArn","RdsDbInstanceArn",properties.RdsDbInstanceArn!=null?cfn_parse().FromCloudFormation.getString(properties.RdsDbInstanceArn):void 0),ret.addPropertyResult("rdsDbProxyArn","RdsDbProxyArn",properties.RdsDbProxyArn!=null?cfn_parse().FromCloudFormation.getString(properties.RdsDbProxyArn):void 0),ret.addPropertyResult("rdsEndpoint","RdsEndpoint",properties.RdsEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.RdsEndpoint):void 0),ret.addPropertyResult("subnetIds","SubnetIds",properties.SubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SubnetIds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessEndpointCidrOptionsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidr",cdk().validateString)(properties.cidr)),errors.collect(cdk().propertyValidator("portRanges",cdk().listValidator(CfnVerifiedAccessEndpointPortRangePropertyValidator))(properties.portRanges)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("subnetIds",cdk().listValidator(cdk().validateString))(properties.subnetIds)),errors.wrap('supplied properties not correct for "CidrOptionsProperty"')}function convertCfnVerifiedAccessEndpointCidrOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessEndpointCidrOptionsPropertyValidator(properties).assertSuccess(),{Cidr:cdk().stringToCloudFormation(properties.cidr),PortRanges:cdk().listMapper(convertCfnVerifiedAccessEndpointPortRangePropertyToCloudFormation)(properties.portRanges),Protocol:cdk().stringToCloudFormation(properties.protocol),SubnetIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnetIds)}):properties}function CfnVerifiedAccessEndpointCidrOptionsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("portRanges","PortRanges",properties.PortRanges!=null?cfn_parse().FromCloudFormation.getArray(CfnVerifiedAccessEndpointPortRangePropertyFromCloudFormation)(properties.PortRanges):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("subnetIds","SubnetIds",properties.SubnetIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SubnetIds):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessEndpointSseSpecificationPropertyValidator(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("customerManagedKeyEnabled",cdk().validateBoolean)(properties.customerManagedKeyEnabled)),errors.collect(cdk().propertyValidator("kmsKeyArn",cdk().validateString)(properties.kmsKeyArn)),errors.wrap('supplied properties not correct for "SseSpecificationProperty"')}function convertCfnVerifiedAccessEndpointSseSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessEndpointSseSpecificationPropertyValidator(properties).assertSuccess(),{CustomerManagedKeyEnabled:cdk().booleanToCloudFormation(properties.customerManagedKeyEnabled),KmsKeyArn:cdk().stringToCloudFormation(properties.kmsKeyArn)}):properties}function CfnVerifiedAccessEndpointSseSpecificationPropertyFromCloudFormation(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("customerManagedKeyEnabled","CustomerManagedKeyEnabled",properties.CustomerManagedKeyEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.CustomerManagedKeyEnabled):void 0),ret.addPropertyResult("kmsKeyArn","KmsKeyArn",properties.KmsKeyArn!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessEndpointPropsValidator(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("applicationDomain",cdk().validateString)(properties.applicationDomain)),errors.collect(cdk().propertyValidator("attachmentType",cdk().requiredValidator)(properties.attachmentType)),errors.collect(cdk().propertyValidator("attachmentType",cdk().validateString)(properties.attachmentType)),errors.collect(cdk().propertyValidator("cidrOptions",CfnVerifiedAccessEndpointCidrOptionsPropertyValidator)(properties.cidrOptions)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("domainCertificateArn",cdk().validateString)(properties.domainCertificateArn)),errors.collect(cdk().propertyValidator("endpointDomainPrefix",cdk().validateString)(properties.endpointDomainPrefix)),errors.collect(cdk().propertyValidator("endpointType",cdk().requiredValidator)(properties.endpointType)),errors.collect(cdk().propertyValidator("endpointType",cdk().validateString)(properties.endpointType)),errors.collect(cdk().propertyValidator("loadBalancerOptions",CfnVerifiedAccessEndpointLoadBalancerOptionsPropertyValidator)(properties.loadBalancerOptions)),errors.collect(cdk().propertyValidator("networkInterfaceOptions",CfnVerifiedAccessEndpointNetworkInterfaceOptionsPropertyValidator)(properties.networkInterfaceOptions)),errors.collect(cdk().propertyValidator("policyDocument",cdk().validateString)(properties.policyDocument)),errors.collect(cdk().propertyValidator("policyEnabled",cdk().validateBoolean)(properties.policyEnabled)),errors.collect(cdk().propertyValidator("rdsOptions",CfnVerifiedAccessEndpointRdsOptionsPropertyValidator)(properties.rdsOptions)),errors.collect(cdk().propertyValidator("securityGroupIds",cdk().listValidator(cdk().validateString))(properties.securityGroupIds)),errors.collect(cdk().propertyValidator("sseSpecification",CfnVerifiedAccessEndpointSseSpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("verifiedAccessGroupId",cdk().requiredValidator)(properties.verifiedAccessGroupId)),errors.collect(cdk().propertyValidator("verifiedAccessGroupId",cdk().validateString)(properties.verifiedAccessGroupId)),errors.wrap('supplied properties not correct for "CfnVerifiedAccessEndpointProps"')}function convertCfnVerifiedAccessEndpointPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessEndpointPropsValidator(properties).assertSuccess(),{ApplicationDomain:cdk().stringToCloudFormation(properties.applicationDomain),AttachmentType:cdk().stringToCloudFormation(properties.attachmentType),CidrOptions:convertCfnVerifiedAccessEndpointCidrOptionsPropertyToCloudFormation(properties.cidrOptions),Description:cdk().stringToCloudFormation(properties.description),DomainCertificateArn:cdk().stringToCloudFormation(properties.domainCertificateArn),EndpointDomainPrefix:cdk().stringToCloudFormation(properties.endpointDomainPrefix),EndpointType:cdk().stringToCloudFormation(properties.endpointType),LoadBalancerOptions:convertCfnVerifiedAccessEndpointLoadBalancerOptionsPropertyToCloudFormation(properties.loadBalancerOptions),NetworkInterfaceOptions:convertCfnVerifiedAccessEndpointNetworkInterfaceOptionsPropertyToCloudFormation(properties.networkInterfaceOptions),PolicyDocument:cdk().stringToCloudFormation(properties.policyDocument),PolicyEnabled:cdk().booleanToCloudFormation(properties.policyEnabled),RdsOptions:convertCfnVerifiedAccessEndpointRdsOptionsPropertyToCloudFormation(properties.rdsOptions),SecurityGroupIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.securityGroupIds),SseSpecification:convertCfnVerifiedAccessEndpointSseSpecificationPropertyToCloudFormation(properties.sseSpecification),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VerifiedAccessGroupId:cdk().stringToCloudFormation(properties.verifiedAccessGroupId)}):properties}function CfnVerifiedAccessEndpointPropsFromCloudFormation(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("applicationDomain","ApplicationDomain",properties.ApplicationDomain!=null?cfn_parse().FromCloudFormation.getString(properties.ApplicationDomain):void 0),ret.addPropertyResult("attachmentType","AttachmentType",properties.AttachmentType!=null?cfn_parse().FromCloudFormation.getString(properties.AttachmentType):void 0),ret.addPropertyResult("cidrOptions","CidrOptions",properties.CidrOptions!=null?CfnVerifiedAccessEndpointCidrOptionsPropertyFromCloudFormation(properties.CidrOptions):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("domainCertificateArn","DomainCertificateArn",properties.DomainCertificateArn!=null?cfn_parse().FromCloudFormation.getString(properties.DomainCertificateArn):void 0),ret.addPropertyResult("endpointDomainPrefix","EndpointDomainPrefix",properties.EndpointDomainPrefix!=null?cfn_parse().FromCloudFormation.getString(properties.EndpointDomainPrefix):void 0),ret.addPropertyResult("endpointType","EndpointType",properties.EndpointType!=null?cfn_parse().FromCloudFormation.getString(properties.EndpointType):void 0),ret.addPropertyResult("loadBalancerOptions","LoadBalancerOptions",properties.LoadBalancerOptions!=null?CfnVerifiedAccessEndpointLoadBalancerOptionsPropertyFromCloudFormation(properties.LoadBalancerOptions):void 0),ret.addPropertyResult("networkInterfaceOptions","NetworkInterfaceOptions",properties.NetworkInterfaceOptions!=null?CfnVerifiedAccessEndpointNetworkInterfaceOptionsPropertyFromCloudFormation(properties.NetworkInterfaceOptions):void 0),ret.addPropertyResult("policyDocument","PolicyDocument",properties.PolicyDocument!=null?cfn_parse().FromCloudFormation.getString(properties.PolicyDocument):void 0),ret.addPropertyResult("policyEnabled","PolicyEnabled",properties.PolicyEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PolicyEnabled):void 0),ret.addPropertyResult("rdsOptions","RdsOptions",properties.RdsOptions!=null?CfnVerifiedAccessEndpointRdsOptionsPropertyFromCloudFormation(properties.RdsOptions):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SecurityGroupIds):void 0),ret.addPropertyResult("sseSpecification","SseSpecification",properties.SseSpecification!=null?CfnVerifiedAccessEndpointSseSpecificationPropertyFromCloudFormation(properties.SseSpecification):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("verifiedAccessGroupId","VerifiedAccessGroupId",properties.VerifiedAccessGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.VerifiedAccessGroupId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVerifiedAccessGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVerifiedAccessGroup",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VerifiedAccessGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVerifiedAccessGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVerifiedAccessGroup(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 isCfnVerifiedAccessGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVerifiedAccessGroup.CFN_RESOURCE_TYPE_NAME}static fromVerifiedAccessGroupArn(scope,id,arn){class Import extends cdk().Resource{verifiedAccessGroupRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:verified-access-group/${VerifiedAccessGroupId}").parse(arn2);this.verifiedAccessGroupRef={verifiedAccessGroupId:variables.VerifiedAccessGroupId,verifiedAccessGroupArn:arn2}}}return new Import(scope,id,arn)}static fromVerifiedAccessGroupId(scope,id,verifiedAccessGroupId){class Import extends cdk().Resource{verifiedAccessGroupRef;constructor(scope2,id2,verifiedAccessGroupId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:verified-access-group/${VerifiedAccessGroupId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,VerifiedAccessGroupId:verifiedAccessGroupId2});super(scope2,id2,{environmentFromArn:arn}),this.verifiedAccessGroupRef={verifiedAccessGroupId:verifiedAccessGroupId2,verifiedAccessGroupArn:arn}}}return new Import(scope,id,verifiedAccessGroupId)}static arnForVerifiedAccessGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVerifiedAccessGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVerifiedAccessGroup),error}return resource.verifiedAccessGroupRef.verifiedAccessGroupArn}_description;_policyDocument;_policyEnabled;_sseSpecification;tags;_tagsRaw;_verifiedAccessInstanceId;cfnPropertyNames={description:"Description",policyDocument:"PolicyDocument",policyEnabled:"PolicyEnabled",sseSpecification:"SseSpecification",tags:"Tags",verifiedAccessInstanceId:"VerifiedAccessInstanceId"};constructor(scope,id,props){super(scope,id,{type:CfnVerifiedAccessGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVerifiedAccessGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVerifiedAccessGroup),error}cdk().requireProperty(props,"verifiedAccessInstanceId",this),this._description=props.description,this._policyDocument=props.policyDocument,this._policyEnabled=props.policyEnabled,this._sseSpecification=props.sseSpecification,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VerifiedAccessGroup",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._verifiedAccessInstanceId=props.verifiedAccessInstanceId}get verifiedAccessGroupRef(){return{verifiedAccessGroupId:this.ref,verifiedAccessGroupArn:this.attrVerifiedAccessGroupArn}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get policyDocument(){return this._policyDocument}set policyDocument(value){cdk().traceProperty(this.node,"PolicyDocument"),this._policyDocument=value}get policyEnabled(){return this._policyEnabled}set policyEnabled(value){cdk().traceProperty(this.node,"PolicyEnabled"),this._policyEnabled=value}get sseSpecification(){return this._sseSpecification}set sseSpecification(value){cdk().traceProperty(this.node,"SseSpecification"),this._sseSpecification=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get verifiedAccessInstanceId(){return this._verifiedAccessInstanceId}set verifiedAccessInstanceId(value){cdk().traceProperty(this.node,"VerifiedAccessInstanceId"),this._verifiedAccessInstanceId=value}get attrCreationTime(){return cdk().Token.asString(this.getAtt("CreationTime",cdk().ResolutionTypeHint.STRING))}get attrLastUpdatedTime(){return cdk().Token.asString(this.getAtt("LastUpdatedTime",cdk().ResolutionTypeHint.STRING))}get attrOwner(){return cdk().Token.asString(this.getAtt("Owner",cdk().ResolutionTypeHint.STRING))}get attrVerifiedAccessGroupArn(){return cdk().Token.asString(this.getAtt("VerifiedAccessGroupArn",cdk().ResolutionTypeHint.STRING))}get attrVerifiedAccessGroupId(){return cdk().Token.asString(this.getAtt("VerifiedAccessGroupId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,policyDocument:this._policyDocument,policyEnabled:this._policyEnabled,sseSpecification:this._sseSpecification,tags:this.tags.renderTags(),verifiedAccessInstanceId:this._verifiedAccessInstanceId}}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",CfnVerifiedAccessGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVerifiedAccessGroupPropsToCloudFormation(props)}}exports.CfnVerifiedAccessGroup=CfnVerifiedAccessGroup;function CfnVerifiedAccessGroupSseSpecificationPropertyValidator(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("customerManagedKeyEnabled",cdk().validateBoolean)(properties.customerManagedKeyEnabled)),errors.collect(cdk().propertyValidator("kmsKeyArn",cdk().validateString)(properties.kmsKeyArn)),errors.wrap('supplied properties not correct for "SseSpecificationProperty"')}function convertCfnVerifiedAccessGroupSseSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessGroupSseSpecificationPropertyValidator(properties).assertSuccess(),{CustomerManagedKeyEnabled:cdk().booleanToCloudFormation(properties.customerManagedKeyEnabled),KmsKeyArn:cdk().stringToCloudFormation(properties.kmsKeyArn)}):properties}function CfnVerifiedAccessGroupSseSpecificationPropertyFromCloudFormation(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("customerManagedKeyEnabled","CustomerManagedKeyEnabled",properties.CustomerManagedKeyEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.CustomerManagedKeyEnabled):void 0),ret.addPropertyResult("kmsKeyArn","KmsKeyArn",properties.KmsKeyArn!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessGroupPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("policyDocument",cdk().validateString)(properties.policyDocument)),errors.collect(cdk().propertyValidator("policyEnabled",cdk().validateBoolean)(properties.policyEnabled)),errors.collect(cdk().propertyValidator("sseSpecification",CfnVerifiedAccessGroupSseSpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("verifiedAccessInstanceId",cdk().requiredValidator)(properties.verifiedAccessInstanceId)),errors.collect(cdk().propertyValidator("verifiedAccessInstanceId",cdk().validateString)(properties.verifiedAccessInstanceId)),errors.wrap('supplied properties not correct for "CfnVerifiedAccessGroupProps"')}function convertCfnVerifiedAccessGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessGroupPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),PolicyDocument:cdk().stringToCloudFormation(properties.policyDocument),PolicyEnabled:cdk().booleanToCloudFormation(properties.policyEnabled),SseSpecification:convertCfnVerifiedAccessGroupSseSpecificationPropertyToCloudFormation(properties.sseSpecification),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VerifiedAccessInstanceId:cdk().stringToCloudFormation(properties.verifiedAccessInstanceId)}):properties}function CfnVerifiedAccessGroupPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("policyDocument","PolicyDocument",properties.PolicyDocument!=null?cfn_parse().FromCloudFormation.getString(properties.PolicyDocument):void 0),ret.addPropertyResult("policyEnabled","PolicyEnabled",properties.PolicyEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PolicyEnabled):void 0),ret.addPropertyResult("sseSpecification","SseSpecification",properties.SseSpecification!=null?CfnVerifiedAccessGroupSseSpecificationPropertyFromCloudFormation(properties.SseSpecification):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("verifiedAccessInstanceId","VerifiedAccessInstanceId",properties.VerifiedAccessInstanceId!=null?cfn_parse().FromCloudFormation.getString(properties.VerifiedAccessInstanceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVerifiedAccessInstance extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVerifiedAccessInstance",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VerifiedAccessInstance";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVerifiedAccessInstancePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVerifiedAccessInstance(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 isCfnVerifiedAccessInstance(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVerifiedAccessInstance.CFN_RESOURCE_TYPE_NAME}static fromVerifiedAccessInstanceId(scope,id,verifiedAccessInstanceId){class Import extends cdk().Resource{verifiedAccessInstanceRef;constructor(scope2,id2,verifiedAccessInstanceId2){super(scope2,id2),this.verifiedAccessInstanceRef={verifiedAccessInstanceId:verifiedAccessInstanceId2}}}return new Import(scope,id,verifiedAccessInstanceId)}static arnForVerifiedAccessInstance(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVerifiedAccessInstanceRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVerifiedAccessInstance),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:verified-access-instance/${VerifiedAccessInstanceId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,VerifiedAccessInstanceId:resource.verifiedAccessInstanceRef.verifiedAccessInstanceId})}_cidrEndpointsCustomSubDomain;_description;_fipsEnabled;_loggingConfigurations;tags;_tagsRaw;_verifiedAccessTrustProviderIds;_verifiedAccessTrustProviders;cfnPropertyNames={cidrEndpointsCustomSubDomain:"CidrEndpointsCustomSubDomain",description:"Description",fipsEnabled:"FipsEnabled",loggingConfigurations:"LoggingConfigurations",tags:"Tags",verifiedAccessTrustProviderIds:"VerifiedAccessTrustProviderIds",verifiedAccessTrustProviders:"VerifiedAccessTrustProviders"};constructor(scope,id,props={}){super(scope,id,{type:CfnVerifiedAccessInstance.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVerifiedAccessInstanceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVerifiedAccessInstance),error}this._cidrEndpointsCustomSubDomain=props.cidrEndpointsCustomSubDomain,this._description=props.description,this._fipsEnabled=props.fipsEnabled,this._loggingConfigurations=props.loggingConfigurations,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VerifiedAccessInstance",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._verifiedAccessTrustProviderIds=props.verifiedAccessTrustProviderIds,this._verifiedAccessTrustProviders=props.verifiedAccessTrustProviders}get verifiedAccessInstanceRef(){return{verifiedAccessInstanceId:this.ref}}get cidrEndpointsCustomSubDomain(){return this._cidrEndpointsCustomSubDomain}set cidrEndpointsCustomSubDomain(value){cdk().traceProperty(this.node,"CidrEndpointsCustomSubDomain"),this._cidrEndpointsCustomSubDomain=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get fipsEnabled(){return this._fipsEnabled}set fipsEnabled(value){cdk().traceProperty(this.node,"FipsEnabled"),this._fipsEnabled=value}get loggingConfigurations(){return this._loggingConfigurations}set loggingConfigurations(value){cdk().traceProperty(this.node,"LoggingConfigurations"),this._loggingConfigurations=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get verifiedAccessTrustProviderIds(){return this._verifiedAccessTrustProviderIds}set verifiedAccessTrustProviderIds(value){cdk().traceProperty(this.node,"VerifiedAccessTrustProviderIds"),this._verifiedAccessTrustProviderIds=value}get verifiedAccessTrustProviders(){return this._verifiedAccessTrustProviders}set verifiedAccessTrustProviders(value){cdk().traceProperty(this.node,"VerifiedAccessTrustProviders"),this._verifiedAccessTrustProviders=value}get attrCidrEndpointsCustomSubDomainNameServers(){return cdk().Token.asList(this.getAtt("CidrEndpointsCustomSubDomainNameServers",cdk().ResolutionTypeHint.STRING_LIST))}get attrCreationTime(){return cdk().Token.asString(this.getAtt("CreationTime",cdk().ResolutionTypeHint.STRING))}get attrLastUpdatedTime(){return cdk().Token.asString(this.getAtt("LastUpdatedTime",cdk().ResolutionTypeHint.STRING))}get attrVerifiedAccessInstanceId(){return cdk().Token.asString(this.getAtt("VerifiedAccessInstanceId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{cidrEndpointsCustomSubDomain:this._cidrEndpointsCustomSubDomain,description:this._description,fipsEnabled:this._fipsEnabled,loggingConfigurations:this._loggingConfigurations,tags:this.tags.renderTags(),verifiedAccessTrustProviderIds:this._verifiedAccessTrustProviderIds,verifiedAccessTrustProviders:this._verifiedAccessTrustProviders}}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",CfnVerifiedAccessInstance.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVerifiedAccessInstancePropsToCloudFormation(props)}}exports.CfnVerifiedAccessInstance=CfnVerifiedAccessInstance;function CfnVerifiedAccessInstanceVerifiedAccessTrustProviderPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("deviceTrustProviderType",cdk().validateString)(properties.deviceTrustProviderType)),errors.collect(cdk().propertyValidator("trustProviderType",cdk().validateString)(properties.trustProviderType)),errors.collect(cdk().propertyValidator("userTrustProviderType",cdk().validateString)(properties.userTrustProviderType)),errors.collect(cdk().propertyValidator("verifiedAccessTrustProviderId",cdk().validateString)(properties.verifiedAccessTrustProviderId)),errors.wrap('supplied properties not correct for "VerifiedAccessTrustProviderProperty"')}function convertCfnVerifiedAccessInstanceVerifiedAccessTrustProviderPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessInstanceVerifiedAccessTrustProviderPropertyValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),DeviceTrustProviderType:cdk().stringToCloudFormation(properties.deviceTrustProviderType),TrustProviderType:cdk().stringToCloudFormation(properties.trustProviderType),UserTrustProviderType:cdk().stringToCloudFormation(properties.userTrustProviderType),VerifiedAccessTrustProviderId:cdk().stringToCloudFormation(properties.verifiedAccessTrustProviderId)}):properties}function CfnVerifiedAccessInstanceVerifiedAccessTrustProviderPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceTrustProviderType","DeviceTrustProviderType",properties.DeviceTrustProviderType!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceTrustProviderType):void 0),ret.addPropertyResult("trustProviderType","TrustProviderType",properties.TrustProviderType!=null?cfn_parse().FromCloudFormation.getString(properties.TrustProviderType):void 0),ret.addPropertyResult("userTrustProviderType","UserTrustProviderType",properties.UserTrustProviderType!=null?cfn_parse().FromCloudFormation.getString(properties.UserTrustProviderType):void 0),ret.addPropertyResult("verifiedAccessTrustProviderId","VerifiedAccessTrustProviderId",properties.VerifiedAccessTrustProviderId!=null?cfn_parse().FromCloudFormation.getString(properties.VerifiedAccessTrustProviderId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessInstanceS3PropertyValidator(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("bucketName",cdk().validateString)(properties.bucketName)),errors.collect(cdk().propertyValidator("bucketOwner",cdk().validateString)(properties.bucketOwner)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("prefix",cdk().validateString)(properties.prefix)),errors.wrap('supplied properties not correct for "S3Property"')}function convertCfnVerifiedAccessInstanceS3PropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessInstanceS3PropertyValidator(properties).assertSuccess(),{BucketName:cdk().stringToCloudFormation(properties.bucketName),BucketOwner:cdk().stringToCloudFormation(properties.bucketOwner),Enabled:cdk().booleanToCloudFormation(properties.enabled),Prefix:cdk().stringToCloudFormation(properties.prefix)}):properties}function CfnVerifiedAccessInstanceS3PropertyFromCloudFormation(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("bucketName","BucketName",properties.BucketName!=null?cfn_parse().FromCloudFormation.getString(properties.BucketName):void 0),ret.addPropertyResult("bucketOwner","BucketOwner",properties.BucketOwner!=null?cfn_parse().FromCloudFormation.getString(properties.BucketOwner):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse().FromCloudFormation.getString(properties.Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessInstanceKinesisDataFirehosePropertyValidator(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("deliveryStream",cdk().validateString)(properties.deliveryStream)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "KinesisDataFirehoseProperty"')}function convertCfnVerifiedAccessInstanceKinesisDataFirehosePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessInstanceKinesisDataFirehosePropertyValidator(properties).assertSuccess(),{DeliveryStream:cdk().stringToCloudFormation(properties.deliveryStream),Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnVerifiedAccessInstanceKinesisDataFirehosePropertyFromCloudFormation(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("deliveryStream","DeliveryStream",properties.DeliveryStream!=null?cfn_parse().FromCloudFormation.getString(properties.DeliveryStream):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessInstanceCloudWatchLogsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("logGroup",cdk().validateString)(properties.logGroup)),errors.wrap('supplied properties not correct for "CloudWatchLogsProperty"')}function convertCfnVerifiedAccessInstanceCloudWatchLogsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessInstanceCloudWatchLogsPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled),LogGroup:cdk().stringToCloudFormation(properties.logGroup)}):properties}function CfnVerifiedAccessInstanceCloudWatchLogsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("logGroup","LogGroup",properties.LogGroup!=null?cfn_parse().FromCloudFormation.getString(properties.LogGroup):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessInstanceVerifiedAccessLogsPropertyValidator(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("cloudWatchLogs",CfnVerifiedAccessInstanceCloudWatchLogsPropertyValidator)(properties.cloudWatchLogs)),errors.collect(cdk().propertyValidator("includeTrustContext",cdk().validateBoolean)(properties.includeTrustContext)),errors.collect(cdk().propertyValidator("kinesisDataFirehose",CfnVerifiedAccessInstanceKinesisDataFirehosePropertyValidator)(properties.kinesisDataFirehose)),errors.collect(cdk().propertyValidator("logVersion",cdk().validateString)(properties.logVersion)),errors.collect(cdk().propertyValidator("s3",CfnVerifiedAccessInstanceS3PropertyValidator)(properties.s3)),errors.wrap('supplied properties not correct for "VerifiedAccessLogsProperty"')}function convertCfnVerifiedAccessInstanceVerifiedAccessLogsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessInstanceVerifiedAccessLogsPropertyValidator(properties).assertSuccess(),{CloudWatchLogs:convertCfnVerifiedAccessInstanceCloudWatchLogsPropertyToCloudFormation(properties.cloudWatchLogs),IncludeTrustContext:cdk().booleanToCloudFormation(properties.includeTrustContext),KinesisDataFirehose:convertCfnVerifiedAccessInstanceKinesisDataFirehosePropertyToCloudFormation(properties.kinesisDataFirehose),LogVersion:cdk().stringToCloudFormation(properties.logVersion),S3:convertCfnVerifiedAccessInstanceS3PropertyToCloudFormation(properties.s3)}):properties}function CfnVerifiedAccessInstanceVerifiedAccessLogsPropertyFromCloudFormation(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("cloudWatchLogs","CloudWatchLogs",properties.CloudWatchLogs!=null?CfnVerifiedAccessInstanceCloudWatchLogsPropertyFromCloudFormation(properties.CloudWatchLogs):void 0),ret.addPropertyResult("includeTrustContext","IncludeTrustContext",properties.IncludeTrustContext!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IncludeTrustContext):void 0),ret.addPropertyResult("kinesisDataFirehose","KinesisDataFirehose",properties.KinesisDataFirehose!=null?CfnVerifiedAccessInstanceKinesisDataFirehosePropertyFromCloudFormation(properties.KinesisDataFirehose):void 0),ret.addPropertyResult("logVersion","LogVersion",properties.LogVersion!=null?cfn_parse().FromCloudFormation.getString(properties.LogVersion):void 0),ret.addPropertyResult("s3","S3",properties.S3!=null?CfnVerifiedAccessInstanceS3PropertyFromCloudFormation(properties.S3):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessInstancePropsValidator(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("cidrEndpointsCustomSubDomain",cdk().validateString)(properties.cidrEndpointsCustomSubDomain)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("fipsEnabled",cdk().validateBoolean)(properties.fipsEnabled)),errors.collect(cdk().propertyValidator("loggingConfigurations",CfnVerifiedAccessInstanceVerifiedAccessLogsPropertyValidator)(properties.loggingConfigurations)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("verifiedAccessTrustProviderIds",cdk().listValidator(cdk().validateString))(properties.verifiedAccessTrustProviderIds)),errors.collect(cdk().propertyValidator("verifiedAccessTrustProviders",cdk().listValidator(CfnVerifiedAccessInstanceVerifiedAccessTrustProviderPropertyValidator))(properties.verifiedAccessTrustProviders)),errors.wrap('supplied properties not correct for "CfnVerifiedAccessInstanceProps"')}function convertCfnVerifiedAccessInstancePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessInstancePropsValidator(properties).assertSuccess(),{CidrEndpointsCustomSubDomain:cdk().stringToCloudFormation(properties.cidrEndpointsCustomSubDomain),Description:cdk().stringToCloudFormation(properties.description),FipsEnabled:cdk().booleanToCloudFormation(properties.fipsEnabled),LoggingConfigurations:convertCfnVerifiedAccessInstanceVerifiedAccessLogsPropertyToCloudFormation(properties.loggingConfigurations),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VerifiedAccessTrustProviderIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.verifiedAccessTrustProviderIds),VerifiedAccessTrustProviders:cdk().listMapper(convertCfnVerifiedAccessInstanceVerifiedAccessTrustProviderPropertyToCloudFormation)(properties.verifiedAccessTrustProviders)}):properties}function CfnVerifiedAccessInstancePropsFromCloudFormation(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("cidrEndpointsCustomSubDomain","CidrEndpointsCustomSubDomain",properties.CidrEndpointsCustomSubDomain!=null?cfn_parse().FromCloudFormation.getString(properties.CidrEndpointsCustomSubDomain):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("fipsEnabled","FipsEnabled",properties.FipsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.FipsEnabled):void 0),ret.addPropertyResult("loggingConfigurations","LoggingConfigurations",properties.LoggingConfigurations!=null?CfnVerifiedAccessInstanceVerifiedAccessLogsPropertyFromCloudFormation(properties.LoggingConfigurations):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("verifiedAccessTrustProviderIds","VerifiedAccessTrustProviderIds",properties.VerifiedAccessTrustProviderIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.VerifiedAccessTrustProviderIds):void 0),ret.addPropertyResult("verifiedAccessTrustProviders","VerifiedAccessTrustProviders",properties.VerifiedAccessTrustProviders!=null?cfn_parse().FromCloudFormation.getArray(CfnVerifiedAccessInstanceVerifiedAccessTrustProviderPropertyFromCloudFormation)(properties.VerifiedAccessTrustProviders):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVerifiedAccessTrustProvider extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVerifiedAccessTrustProvider",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VerifiedAccessTrustProvider";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVerifiedAccessTrustProviderPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVerifiedAccessTrustProvider(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 isCfnVerifiedAccessTrustProvider(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVerifiedAccessTrustProvider.CFN_RESOURCE_TYPE_NAME}static fromVerifiedAccessTrustProviderId(scope,id,verifiedAccessTrustProviderId){class Import extends cdk().Resource{verifiedAccessTrustProviderRef;constructor(scope2,id2,verifiedAccessTrustProviderId2){super(scope2,id2),this.verifiedAccessTrustProviderRef={verifiedAccessTrustProviderId:verifiedAccessTrustProviderId2}}}return new Import(scope,id,verifiedAccessTrustProviderId)}static arnForVerifiedAccessTrustProvider(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVerifiedAccessTrustProviderRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVerifiedAccessTrustProvider),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:verified-access-trust-provider/${VerifiedAccessTrustProviderId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,VerifiedAccessTrustProviderId:resource.verifiedAccessTrustProviderRef.verifiedAccessTrustProviderId})}_description;_deviceOptions;_deviceTrustProviderType;_nativeApplicationOidcOptions;_oidcOptions;_policyReferenceName;_sseSpecification;tags;_tagsRaw;_trustProviderType;_userTrustProviderType;cfnPropertyNames={description:"Description",deviceOptions:"DeviceOptions",deviceTrustProviderType:"DeviceTrustProviderType",nativeApplicationOidcOptions:"NativeApplicationOidcOptions",oidcOptions:"OidcOptions",policyReferenceName:"PolicyReferenceName",sseSpecification:"SseSpecification",tags:"Tags",trustProviderType:"TrustProviderType",userTrustProviderType:"UserTrustProviderType"};constructor(scope,id,props){super(scope,id,{type:CfnVerifiedAccessTrustProvider.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVerifiedAccessTrustProviderProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVerifiedAccessTrustProvider),error}cdk().requireProperty(props,"policyReferenceName",this),cdk().requireProperty(props,"trustProviderType",this),this._description=props.description,this._deviceOptions=props.deviceOptions,this._deviceTrustProviderType=props.deviceTrustProviderType,this._nativeApplicationOidcOptions=props.nativeApplicationOidcOptions,this._oidcOptions=props.oidcOptions,this._policyReferenceName=props.policyReferenceName,this._sseSpecification=props.sseSpecification,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VerifiedAccessTrustProvider",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._trustProviderType=props.trustProviderType,this._userTrustProviderType=props.userTrustProviderType}get verifiedAccessTrustProviderRef(){return{verifiedAccessTrustProviderId:this.ref}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get deviceOptions(){return this._deviceOptions}set deviceOptions(value){cdk().traceProperty(this.node,"DeviceOptions"),this._deviceOptions=value}get deviceTrustProviderType(){return this._deviceTrustProviderType}set deviceTrustProviderType(value){cdk().traceProperty(this.node,"DeviceTrustProviderType"),this._deviceTrustProviderType=value}get nativeApplicationOidcOptions(){return this._nativeApplicationOidcOptions}set nativeApplicationOidcOptions(value){cdk().traceProperty(this.node,"NativeApplicationOidcOptions"),this._nativeApplicationOidcOptions=value}get oidcOptions(){return this._oidcOptions}set oidcOptions(value){cdk().traceProperty(this.node,"OidcOptions"),this._oidcOptions=value}get policyReferenceName(){return this._policyReferenceName}set policyReferenceName(value){cdk().traceProperty(this.node,"PolicyReferenceName"),this._policyReferenceName=value}get sseSpecification(){return this._sseSpecification}set sseSpecification(value){cdk().traceProperty(this.node,"SseSpecification"),this._sseSpecification=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get trustProviderType(){return this._trustProviderType}set trustProviderType(value){cdk().traceProperty(this.node,"TrustProviderType"),this._trustProviderType=value}get userTrustProviderType(){return this._userTrustProviderType}set userTrustProviderType(value){cdk().traceProperty(this.node,"UserTrustProviderType"),this._userTrustProviderType=value}get attrCreationTime(){return cdk().Token.asString(this.getAtt("CreationTime",cdk().ResolutionTypeHint.STRING))}get attrLastUpdatedTime(){return cdk().Token.asString(this.getAtt("LastUpdatedTime",cdk().ResolutionTypeHint.STRING))}get attrVerifiedAccessTrustProviderId(){return cdk().Token.asString(this.getAtt("VerifiedAccessTrustProviderId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,deviceOptions:this._deviceOptions,deviceTrustProviderType:this._deviceTrustProviderType,nativeApplicationOidcOptions:this._nativeApplicationOidcOptions,oidcOptions:this._oidcOptions,policyReferenceName:this._policyReferenceName,sseSpecification:this._sseSpecification,tags:this.tags.renderTags(),trustProviderType:this._trustProviderType,userTrustProviderType:this._userTrustProviderType}}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",CfnVerifiedAccessTrustProvider.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVerifiedAccessTrustProviderPropsToCloudFormation(props)}}exports.CfnVerifiedAccessTrustProvider=CfnVerifiedAccessTrustProvider;function CfnVerifiedAccessTrustProviderDeviceOptionsPropertyValidator(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("publicSigningKeyUrl",cdk().validateString)(properties.publicSigningKeyUrl)),errors.collect(cdk().propertyValidator("tenantId",cdk().validateString)(properties.tenantId)),errors.wrap('supplied properties not correct for "DeviceOptionsProperty"')}function convertCfnVerifiedAccessTrustProviderDeviceOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessTrustProviderDeviceOptionsPropertyValidator(properties).assertSuccess(),{PublicSigningKeyUrl:cdk().stringToCloudFormation(properties.publicSigningKeyUrl),TenantId:cdk().stringToCloudFormation(properties.tenantId)}):properties}function CfnVerifiedAccessTrustProviderDeviceOptionsPropertyFromCloudFormation(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("publicSigningKeyUrl","PublicSigningKeyUrl",properties.PublicSigningKeyUrl!=null?cfn_parse().FromCloudFormation.getString(properties.PublicSigningKeyUrl):void 0),ret.addPropertyResult("tenantId","TenantId",properties.TenantId!=null?cfn_parse().FromCloudFormation.getString(properties.TenantId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessTrustProviderOidcOptionsPropertyValidator(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("authorizationEndpoint",cdk().validateString)(properties.authorizationEndpoint)),errors.collect(cdk().propertyValidator("clientId",cdk().validateString)(properties.clientId)),errors.collect(cdk().propertyValidator("clientSecret",cdk().validateString)(properties.clientSecret)),errors.collect(cdk().propertyValidator("issuer",cdk().validateString)(properties.issuer)),errors.collect(cdk().propertyValidator("scope",cdk().validateString)(properties.scope)),errors.collect(cdk().propertyValidator("tokenEndpoint",cdk().validateString)(properties.tokenEndpoint)),errors.collect(cdk().propertyValidator("userInfoEndpoint",cdk().validateString)(properties.userInfoEndpoint)),errors.wrap('supplied properties not correct for "OidcOptionsProperty"')}function convertCfnVerifiedAccessTrustProviderOidcOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessTrustProviderOidcOptionsPropertyValidator(properties).assertSuccess(),{AuthorizationEndpoint:cdk().stringToCloudFormation(properties.authorizationEndpoint),ClientId:cdk().stringToCloudFormation(properties.clientId),ClientSecret:cdk().stringToCloudFormation(properties.clientSecret),Issuer:cdk().stringToCloudFormation(properties.issuer),Scope:cdk().stringToCloudFormation(properties.scope),TokenEndpoint:cdk().stringToCloudFormation(properties.tokenEndpoint),UserInfoEndpoint:cdk().stringToCloudFormation(properties.userInfoEndpoint)}):properties}function CfnVerifiedAccessTrustProviderOidcOptionsPropertyFromCloudFormation(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("authorizationEndpoint","AuthorizationEndpoint",properties.AuthorizationEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.AuthorizationEndpoint):void 0),ret.addPropertyResult("clientId","ClientId",properties.ClientId!=null?cfn_parse().FromCloudFormation.getString(properties.ClientId):void 0),ret.addPropertyResult("clientSecret","ClientSecret",properties.ClientSecret!=null?cfn_parse().FromCloudFormation.getString(properties.ClientSecret):void 0),ret.addPropertyResult("issuer","Issuer",properties.Issuer!=null?cfn_parse().FromCloudFormation.getString(properties.Issuer):void 0),ret.addPropertyResult("scope","Scope",properties.Scope!=null?cfn_parse().FromCloudFormation.getString(properties.Scope):void 0),ret.addPropertyResult("tokenEndpoint","TokenEndpoint",properties.TokenEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.TokenEndpoint):void 0),ret.addPropertyResult("userInfoEndpoint","UserInfoEndpoint",properties.UserInfoEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.UserInfoEndpoint):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessTrustProviderSseSpecificationPropertyValidator(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("customerManagedKeyEnabled",cdk().validateBoolean)(properties.customerManagedKeyEnabled)),errors.collect(cdk().propertyValidator("kmsKeyArn",cdk().validateString)(properties.kmsKeyArn)),errors.wrap('supplied properties not correct for "SseSpecificationProperty"')}function convertCfnVerifiedAccessTrustProviderSseSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessTrustProviderSseSpecificationPropertyValidator(properties).assertSuccess(),{CustomerManagedKeyEnabled:cdk().booleanToCloudFormation(properties.customerManagedKeyEnabled),KmsKeyArn:cdk().stringToCloudFormation(properties.kmsKeyArn)}):properties}function CfnVerifiedAccessTrustProviderSseSpecificationPropertyFromCloudFormation(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("customerManagedKeyEnabled","CustomerManagedKeyEnabled",properties.CustomerManagedKeyEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.CustomerManagedKeyEnabled):void 0),ret.addPropertyResult("kmsKeyArn","KmsKeyArn",properties.KmsKeyArn!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessTrustProviderNativeApplicationOidcOptionsPropertyValidator(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("authorizationEndpoint",cdk().validateString)(properties.authorizationEndpoint)),errors.collect(cdk().propertyValidator("clientId",cdk().validateString)(properties.clientId)),errors.collect(cdk().propertyValidator("clientSecret",cdk().validateString)(properties.clientSecret)),errors.collect(cdk().propertyValidator("issuer",cdk().validateString)(properties.issuer)),errors.collect(cdk().propertyValidator("publicSigningKeyEndpoint",cdk().validateString)(properties.publicSigningKeyEndpoint)),errors.collect(cdk().propertyValidator("scope",cdk().validateString)(properties.scope)),errors.collect(cdk().propertyValidator("tokenEndpoint",cdk().validateString)(properties.tokenEndpoint)),errors.collect(cdk().propertyValidator("userInfoEndpoint",cdk().validateString)(properties.userInfoEndpoint)),errors.wrap('supplied properties not correct for "NativeApplicationOidcOptionsProperty"')}function convertCfnVerifiedAccessTrustProviderNativeApplicationOidcOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessTrustProviderNativeApplicationOidcOptionsPropertyValidator(properties).assertSuccess(),{AuthorizationEndpoint:cdk().stringToCloudFormation(properties.authorizationEndpoint),ClientId:cdk().stringToCloudFormation(properties.clientId),ClientSecret:cdk().stringToCloudFormation(properties.clientSecret),Issuer:cdk().stringToCloudFormation(properties.issuer),PublicSigningKeyEndpoint:cdk().stringToCloudFormation(properties.publicSigningKeyEndpoint),Scope:cdk().stringToCloudFormation(properties.scope),TokenEndpoint:cdk().stringToCloudFormation(properties.tokenEndpoint),UserInfoEndpoint:cdk().stringToCloudFormation(properties.userInfoEndpoint)}):properties}function CfnVerifiedAccessTrustProviderNativeApplicationOidcOptionsPropertyFromCloudFormation(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("authorizationEndpoint","AuthorizationEndpoint",properties.AuthorizationEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.AuthorizationEndpoint):void 0),ret.addPropertyResult("clientId","ClientId",properties.ClientId!=null?cfn_parse().FromCloudFormation.getString(properties.ClientId):void 0),ret.addPropertyResult("clientSecret","ClientSecret",properties.ClientSecret!=null?cfn_parse().FromCloudFormation.getString(properties.ClientSecret):void 0),ret.addPropertyResult("issuer","Issuer",properties.Issuer!=null?cfn_parse().FromCloudFormation.getString(properties.Issuer):void 0),ret.addPropertyResult("publicSigningKeyEndpoint","PublicSigningKeyEndpoint",properties.PublicSigningKeyEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.PublicSigningKeyEndpoint):void 0),ret.addPropertyResult("scope","Scope",properties.Scope!=null?cfn_parse().FromCloudFormation.getString(properties.Scope):void 0),ret.addPropertyResult("tokenEndpoint","TokenEndpoint",properties.TokenEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.TokenEndpoint):void 0),ret.addPropertyResult("userInfoEndpoint","UserInfoEndpoint",properties.UserInfoEndpoint!=null?cfn_parse().FromCloudFormation.getString(properties.UserInfoEndpoint):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVerifiedAccessTrustProviderPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("deviceOptions",CfnVerifiedAccessTrustProviderDeviceOptionsPropertyValidator)(properties.deviceOptions)),errors.collect(cdk().propertyValidator("deviceTrustProviderType",cdk().validateString)(properties.deviceTrustProviderType)),errors.collect(cdk().propertyValidator("nativeApplicationOidcOptions",CfnVerifiedAccessTrustProviderNativeApplicationOidcOptionsPropertyValidator)(properties.nativeApplicationOidcOptions)),errors.collect(cdk().propertyValidator("oidcOptions",CfnVerifiedAccessTrustProviderOidcOptionsPropertyValidator)(properties.oidcOptions)),errors.collect(cdk().propertyValidator("policyReferenceName",cdk().requiredValidator)(properties.policyReferenceName)),errors.collect(cdk().propertyValidator("policyReferenceName",cdk().validateString)(properties.policyReferenceName)),errors.collect(cdk().propertyValidator("sseSpecification",CfnVerifiedAccessTrustProviderSseSpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("trustProviderType",cdk().requiredValidator)(properties.trustProviderType)),errors.collect(cdk().propertyValidator("trustProviderType",cdk().validateString)(properties.trustProviderType)),errors.collect(cdk().propertyValidator("userTrustProviderType",cdk().validateString)(properties.userTrustProviderType)),errors.wrap('supplied properties not correct for "CfnVerifiedAccessTrustProviderProps"')}function convertCfnVerifiedAccessTrustProviderPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVerifiedAccessTrustProviderPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),DeviceOptions:convertCfnVerifiedAccessTrustProviderDeviceOptionsPropertyToCloudFormation(properties.deviceOptions),DeviceTrustProviderType:cdk().stringToCloudFormation(properties.deviceTrustProviderType),NativeApplicationOidcOptions:convertCfnVerifiedAccessTrustProviderNativeApplicationOidcOptionsPropertyToCloudFormation(properties.nativeApplicationOidcOptions),OidcOptions:convertCfnVerifiedAccessTrustProviderOidcOptionsPropertyToCloudFormation(properties.oidcOptions),PolicyReferenceName:cdk().stringToCloudFormation(properties.policyReferenceName),SseSpecification:convertCfnVerifiedAccessTrustProviderSseSpecificationPropertyToCloudFormation(properties.sseSpecification),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TrustProviderType:cdk().stringToCloudFormation(properties.trustProviderType),UserTrustProviderType:cdk().stringToCloudFormation(properties.userTrustProviderType)}):properties}function CfnVerifiedAccessTrustProviderPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceOptions","DeviceOptions",properties.DeviceOptions!=null?CfnVerifiedAccessTrustProviderDeviceOptionsPropertyFromCloudFormation(properties.DeviceOptions):void 0),ret.addPropertyResult("deviceTrustProviderType","DeviceTrustProviderType",properties.DeviceTrustProviderType!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceTrustProviderType):void 0),ret.addPropertyResult("nativeApplicationOidcOptions","NativeApplicationOidcOptions",properties.NativeApplicationOidcOptions!=null?CfnVerifiedAccessTrustProviderNativeApplicationOidcOptionsPropertyFromCloudFormation(properties.NativeApplicationOidcOptions):void 0),ret.addPropertyResult("oidcOptions","OidcOptions",properties.OidcOptions!=null?CfnVerifiedAccessTrustProviderOidcOptionsPropertyFromCloudFormation(properties.OidcOptions):void 0),ret.addPropertyResult("policyReferenceName","PolicyReferenceName",properties.PolicyReferenceName!=null?cfn_parse().FromCloudFormation.getString(properties.PolicyReferenceName):void 0),ret.addPropertyResult("sseSpecification","SseSpecification",properties.SseSpecification!=null?CfnVerifiedAccessTrustProviderSseSpecificationPropertyFromCloudFormation(properties.SseSpecification):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("trustProviderType","TrustProviderType",properties.TrustProviderType!=null?cfn_parse().FromCloudFormation.getString(properties.TrustProviderType):void 0),ret.addPropertyResult("userTrustProviderType","UserTrustProviderType",properties.UserTrustProviderType!=null?cfn_parse().FromCloudFormation.getString(properties.UserTrustProviderType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVolume extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVolume",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::Volume";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVolumePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVolume(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 isCfnVolume(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVolume.CFN_RESOURCE_TYPE_NAME}static fromVolumeId(scope,id,volumeId){class Import extends cdk().Resource{volumeRef;constructor(scope2,id2,volumeId2){super(scope2,id2),this.volumeRef={volumeId:volumeId2}}}return new Import(scope,id,volumeId)}static arnForVolume(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVolumeRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVolume),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:volume/${VolumeId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,VolumeId:resource.volumeRef.volumeId})}_autoEnableIo;_availabilityZone;_availabilityZoneId;_encrypted;_iops;_kmsKeyId;_multiAttachEnabled;_outpostArn;_size;_snapshotId;_sourceVolumeId;tags;_tagsRaw;_throughput;_volumeInitializationRate;_volumeType;cfnPropertyNames={autoEnableIo:"AutoEnableIO",availabilityZone:"AvailabilityZone",availabilityZoneId:"AvailabilityZoneId",encrypted:"Encrypted",iops:"Iops",kmsKeyId:"KmsKeyId",multiAttachEnabled:"MultiAttachEnabled",outpostArn:"OutpostArn",size:"Size",snapshotId:"SnapshotId",sourceVolumeId:"SourceVolumeId",tags:"Tags",throughput:"Throughput",volumeInitializationRate:"VolumeInitializationRate",volumeType:"VolumeType"};constructor(scope,id,props={}){super(scope,id,{type:CfnVolume.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVolumeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVolume),error}this._autoEnableIo=props.autoEnableIo,this._availabilityZone=props.availabilityZone,this._availabilityZoneId=props.availabilityZoneId,this._encrypted=props.encrypted,this._iops=props.iops,this._kmsKeyId=props.kmsKeyId,this._multiAttachEnabled=props.multiAttachEnabled,this._outpostArn=props.outpostArn,this._size=props.size,this._snapshotId=props.snapshotId,this._sourceVolumeId=props.sourceVolumeId,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::Volume",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._throughput=props.throughput,this._volumeInitializationRate=props.volumeInitializationRate,this._volumeType=props.volumeType,this.node.scope!=null&&cdk().Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::EC2::Volume' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}get volumeRef(){return{volumeId:this.ref}}get autoEnableIo(){return this._autoEnableIo}set autoEnableIo(value){cdk().traceProperty(this.node,"AutoEnableIO"),this._autoEnableIo=value}get availabilityZone(){return this._availabilityZone}set availabilityZone(value){cdk().traceProperty(this.node,"AvailabilityZone"),this._availabilityZone=value}get availabilityZoneId(){return this._availabilityZoneId}set availabilityZoneId(value){cdk().traceProperty(this.node,"AvailabilityZoneId"),this._availabilityZoneId=value}get encrypted(){return this._encrypted}set encrypted(value){cdk().traceProperty(this.node,"Encrypted"),this._encrypted=value}get iops(){return this._iops}set iops(value){cdk().traceProperty(this.node,"Iops"),this._iops=value}get kmsKeyId(){return this._kmsKeyId}set kmsKeyId(value){cdk().traceProperty(this.node,"KmsKeyId"),this._kmsKeyId=value}get multiAttachEnabled(){return this._multiAttachEnabled}set multiAttachEnabled(value){cdk().traceProperty(this.node,"MultiAttachEnabled"),this._multiAttachEnabled=value}get outpostArn(){return this._outpostArn}set outpostArn(value){cdk().traceProperty(this.node,"OutpostArn"),this._outpostArn=value}get size(){return this._size}set size(value){cdk().traceProperty(this.node,"Size"),this._size=value}get snapshotId(){return this._snapshotId}set snapshotId(value){cdk().traceProperty(this.node,"SnapshotId"),this._snapshotId=value}get sourceVolumeId(){return this._sourceVolumeId}set sourceVolumeId(value){cdk().traceProperty(this.node,"SourceVolumeId"),this._sourceVolumeId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get throughput(){return this._throughput}set throughput(value){cdk().traceProperty(this.node,"Throughput"),this._throughput=value}get volumeInitializationRate(){return this._volumeInitializationRate}set volumeInitializationRate(value){cdk().traceProperty(this.node,"VolumeInitializationRate"),this._volumeInitializationRate=value}get volumeType(){return this._volumeType}set volumeType(value){cdk().traceProperty(this.node,"VolumeType"),this._volumeType=value}get attrVolumeId(){return cdk().Token.asString(this.getAtt("VolumeId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{autoEnableIo:this._autoEnableIo,availabilityZone:this._availabilityZone,availabilityZoneId:this._availabilityZoneId,encrypted:this._encrypted,iops:this._iops,kmsKeyId:this._kmsKeyId,multiAttachEnabled:this._multiAttachEnabled,outpostArn:this._outpostArn,size:this._size,snapshotId:this._snapshotId,sourceVolumeId:this._sourceVolumeId,tags:this.tags.renderTags(),throughput:this._throughput,volumeInitializationRate:this._volumeInitializationRate,volumeType:this._volumeType}}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",CfnVolume.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVolumePropsToCloudFormation(props)}}exports.CfnVolume=CfnVolume;function CfnVolumePropsValidator(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("autoEnableIo",cdk().validateBoolean)(properties.autoEnableIo)),errors.collect(cdk().propertyValidator("availabilityZone",cdk().validateString)(properties.availabilityZone)),errors.collect(cdk().propertyValidator("availabilityZoneId",cdk().validateString)(properties.availabilityZoneId)),errors.collect(cdk().propertyValidator("encrypted",cdk().validateBoolean)(properties.encrypted)),errors.collect(cdk().propertyValidator("iops",cdk().validateNumber)(properties.iops)),errors.collect(cdk().propertyValidator("kmsKeyId",cdk().validateString)(properties.kmsKeyId)),errors.collect(cdk().propertyValidator("multiAttachEnabled",cdk().validateBoolean)(properties.multiAttachEnabled)),errors.collect(cdk().propertyValidator("outpostArn",cdk().validateString)(properties.outpostArn)),errors.collect(cdk().propertyValidator("size",cdk().validateNumber)(properties.size)),errors.collect(cdk().propertyValidator("snapshotId",cdk().validateString)(properties.snapshotId)),errors.collect(cdk().propertyValidator("sourceVolumeId",cdk().validateString)(properties.sourceVolumeId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("throughput",cdk().validateNumber)(properties.throughput)),errors.collect(cdk().propertyValidator("volumeInitializationRate",cdk().validateNumber)(properties.volumeInitializationRate)),errors.collect(cdk().propertyValidator("volumeType",cdk().validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "CfnVolumeProps"')}function convertCfnVolumePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVolumePropsValidator(properties).assertSuccess(),{AutoEnableIO:cdk().booleanToCloudFormation(properties.autoEnableIo),AvailabilityZone:cdk().stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk().stringToCloudFormation(properties.availabilityZoneId),Encrypted:cdk().booleanToCloudFormation(properties.encrypted),Iops:cdk().numberToCloudFormation(properties.iops),KmsKeyId:cdk().stringToCloudFormation(properties.kmsKeyId),MultiAttachEnabled:cdk().booleanToCloudFormation(properties.multiAttachEnabled),OutpostArn:cdk().stringToCloudFormation(properties.outpostArn),Size:cdk().numberToCloudFormation(properties.size),SnapshotId:cdk().stringToCloudFormation(properties.snapshotId),SourceVolumeId:cdk().stringToCloudFormation(properties.sourceVolumeId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Throughput:cdk().numberToCloudFormation(properties.throughput),VolumeInitializationRate:cdk().numberToCloudFormation(properties.volumeInitializationRate),VolumeType:cdk().stringToCloudFormation(properties.volumeType)}):properties}function CfnVolumePropsFromCloudFormation(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("autoEnableIo","AutoEnableIO",properties.AutoEnableIO!=null?cfn_parse().FromCloudFormation.getBoolean(properties.AutoEnableIO):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse().FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse().FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("multiAttachEnabled","MultiAttachEnabled",properties.MultiAttachEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.MultiAttachEnabled):void 0),ret.addPropertyResult("outpostArn","OutpostArn",properties.OutpostArn!=null?cfn_parse().FromCloudFormation.getString(properties.OutpostArn):void 0),ret.addPropertyResult("size","Size",properties.Size!=null?cfn_parse().FromCloudFormation.getNumber(properties.Size):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse().FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("sourceVolumeId","SourceVolumeId",properties.SourceVolumeId!=null?cfn_parse().FromCloudFormation.getString(properties.SourceVolumeId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("throughput","Throughput",properties.Throughput!=null?cfn_parse().FromCloudFormation.getNumber(properties.Throughput):void 0),ret.addPropertyResult("volumeInitializationRate","VolumeInitializationRate",properties.VolumeInitializationRate!=null?cfn_parse().FromCloudFormation.getNumber(properties.VolumeInitializationRate):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVolumeAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVolumeAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VolumeAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVolumeAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVolumeAttachment(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 isCfnVolumeAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVolumeAttachment.CFN_RESOURCE_TYPE_NAME}_device;_ebsCardIndex;_instanceId;_volumeId;cfnPropertyNames={device:"Device",ebsCardIndex:"EbsCardIndex",instanceId:"InstanceId",volumeId:"VolumeId"};constructor(scope,id,props){super(scope,id,{type:CfnVolumeAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVolumeAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVolumeAttachment),error}cdk().requireProperty(props,"instanceId",this),cdk().requireProperty(props,"volumeId",this),this._device=props.device,this._ebsCardIndex=props.ebsCardIndex,this._instanceId=cdk().getRefProperty(props.instanceId?.instanceRef,"instanceId")??cdk().ensureStringOrUndefined(props.instanceId,"instanceId","ec2.IInstanceRef | string"),this._volumeId=cdk().getRefProperty(props.volumeId?.volumeRef,"volumeId")??cdk().ensureStringOrUndefined(props.volumeId,"volumeId","ec2.IVolumeRef | string")}get volumeAttachmentRef(){return{volumeId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),instanceId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get device(){return this._device}set device(value){cdk().traceProperty(this.node,"Device"),this._device=value}get ebsCardIndex(){return this._ebsCardIndex}set ebsCardIndex(value){cdk().traceProperty(this.node,"EbsCardIndex"),this._ebsCardIndex=value}get instanceId(){return this._instanceId}set instanceId(value){cdk().traceProperty(this.node,"InstanceId"),this._instanceId=value}get volumeId(){return this._volumeId}set volumeId(value){cdk().traceProperty(this.node,"VolumeId"),this._volumeId=value}get cfnProperties(){return{device:this._device,ebsCardIndex:this._ebsCardIndex,instanceId:this._instanceId,volumeId:this._volumeId}}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",CfnVolumeAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVolumeAttachmentPropsToCloudFormation(props)}}exports.CfnVolumeAttachment=CfnVolumeAttachment;function CfnVolumeAttachmentPropsValidator(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("device",cdk().validateString)(properties.device)),errors.collect(cdk().propertyValidator("ebsCardIndex",cdk().validateNumber)(properties.ebsCardIndex)),errors.collect(cdk().propertyValidator("instanceId",cdk().requiredValidator)(properties.instanceId)),errors.collect(cdk().propertyValidator("instanceId",cdk().validateString)(properties.instanceId)),errors.collect(cdk().propertyValidator("volumeId",cdk().requiredValidator)(properties.volumeId)),errors.collect(cdk().propertyValidator("volumeId",cdk().validateString)(properties.volumeId)),errors.wrap('supplied properties not correct for "CfnVolumeAttachmentProps"')}function convertCfnVolumeAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVolumeAttachmentPropsValidator(properties).assertSuccess(),{Device:cdk().stringToCloudFormation(properties.device),EbsCardIndex:cdk().numberToCloudFormation(properties.ebsCardIndex),InstanceId:cdk().stringToCloudFormation(properties.instanceId),VolumeId:cdk().stringToCloudFormation(properties.volumeId)}):properties}function CfnVolumeAttachmentPropsFromCloudFormation(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("device","Device",properties.Device!=null?cfn_parse().FromCloudFormation.getString(properties.Device):void 0),ret.addPropertyResult("ebsCardIndex","EbsCardIndex",properties.EbsCardIndex!=null?cfn_parse().FromCloudFormation.getNumber(properties.EbsCardIndex):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("volumeId","VolumeId",properties.VolumeId!=null?cfn_parse().FromCloudFormation.getString(properties.VolumeId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCapacityManagerDataExport extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnCapacityManagerDataExport",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::CapacityManagerDataExport";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCapacityManagerDataExportPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCapacityManagerDataExport(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 isCfnCapacityManagerDataExport(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCapacityManagerDataExport.CFN_RESOURCE_TYPE_NAME}static fromCapacityManagerDataExportId(scope,id,capacityManagerDataExportId){class Import extends cdk().Resource{capacityManagerDataExportRef;constructor(scope2,id2,capacityManagerDataExportId2){super(scope2,id2),this.capacityManagerDataExportRef={capacityManagerDataExportId:capacityManagerDataExportId2}}}return new Import(scope,id,capacityManagerDataExportId)}static arnForCapacityManagerDataExport(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ICapacityManagerDataExportRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCapacityManagerDataExport),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:capacity-manager-data-export/${CapacityManagerDataExportId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,CapacityManagerDataExportId:resource.capacityManagerDataExportRef.capacityManagerDataExportId})}cdkTagManager;_outputFormat;_s3BucketName;_s3BucketPrefix;_schedule;_tags;cfnPropertyNames={tags:"Tags",outputFormat:"OutputFormat",s3BucketName:"S3BucketName",s3BucketPrefix:"S3BucketPrefix",schedule:"Schedule"};constructor(scope,id,props){super(scope,id,{type:CfnCapacityManagerDataExport.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnCapacityManagerDataExportProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCapacityManagerDataExport),error}cdk().requireProperty(props,"outputFormat",this),cdk().requireProperty(props,"s3BucketName",this),cdk().requireProperty(props,"schedule",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::CapacityManagerDataExport",void 0,{tagPropertyName:"tags"}),this._outputFormat=props.outputFormat,this._s3BucketName=props.s3BucketName,this._s3BucketPrefix=props.s3BucketPrefix,this._schedule=props.schedule,this._tags=props.tags}get capacityManagerDataExportRef(){return{capacityManagerDataExportId:this.ref}}get outputFormat(){return this._outputFormat}set outputFormat(value){cdk().traceProperty(this.node,"OutputFormat"),this._outputFormat=value}get s3BucketName(){return this._s3BucketName}set s3BucketName(value){cdk().traceProperty(this.node,"S3BucketName"),this._s3BucketName=value}get s3BucketPrefix(){return this._s3BucketPrefix}set s3BucketPrefix(value){cdk().traceProperty(this.node,"S3BucketPrefix"),this._s3BucketPrefix=value}get schedule(){return this._schedule}set schedule(value){cdk().traceProperty(this.node,"Schedule"),this._schedule=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrCapacityManagerDataExportId(){return cdk().Token.asString(this.getAtt("CapacityManagerDataExportId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),outputFormat:this._outputFormat,s3BucketName:this._s3BucketName,s3BucketPrefix:this._s3BucketPrefix,schedule:this._schedule}}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",CfnCapacityManagerDataExport.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCapacityManagerDataExportPropsToCloudFormation(props)}}exports.CfnCapacityManagerDataExport=CfnCapacityManagerDataExport;function CfnCapacityManagerDataExportPropsValidator(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("outputFormat",cdk().requiredValidator)(properties.outputFormat)),errors.collect(cdk().propertyValidator("outputFormat",cdk().validateString)(properties.outputFormat)),errors.collect(cdk().propertyValidator("s3BucketName",cdk().requiredValidator)(properties.s3BucketName)),errors.collect(cdk().propertyValidator("s3BucketName",cdk().validateString)(properties.s3BucketName)),errors.collect(cdk().propertyValidator("s3BucketPrefix",cdk().validateString)(properties.s3BucketPrefix)),errors.collect(cdk().propertyValidator("schedule",cdk().requiredValidator)(properties.schedule)),errors.collect(cdk().propertyValidator("schedule",cdk().validateString)(properties.schedule)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnCapacityManagerDataExportProps"')}function convertCfnCapacityManagerDataExportPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCapacityManagerDataExportPropsValidator(properties).assertSuccess(),{OutputFormat:cdk().stringToCloudFormation(properties.outputFormat),S3BucketName:cdk().stringToCloudFormation(properties.s3BucketName),S3BucketPrefix:cdk().stringToCloudFormation(properties.s3BucketPrefix),Schedule:cdk().stringToCloudFormation(properties.schedule),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCapacityManagerDataExportPropsFromCloudFormation(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("outputFormat","OutputFormat",properties.OutputFormat!=null?cfn_parse().FromCloudFormation.getString(properties.OutputFormat):void 0),ret.addPropertyResult("s3BucketName","S3BucketName",properties.S3BucketName!=null?cfn_parse().FromCloudFormation.getString(properties.S3BucketName):void 0),ret.addPropertyResult("s3BucketPrefix","S3BucketPrefix",properties.S3BucketPrefix!=null?cfn_parse().FromCloudFormation.getString(properties.S3BucketPrefix):void 0),ret.addPropertyResult("schedule","Schedule",properties.Schedule!=null?cfn_parse().FromCloudFormation.getString(properties.Schedule):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 CfnIPAMPrefixListResolver extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMPrefixListResolver",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMPrefixListResolver";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMPrefixListResolverPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnIPAMPrefixListResolver(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 isCfnIPAMPrefixListResolver(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnIPAMPrefixListResolver.CFN_RESOURCE_TYPE_NAME}static fromIPAMPrefixListResolverArn(scope,id,arn){class Import extends cdk().Resource{ipamPrefixListResolverRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-prefix-list-resolver/${IpamPrefixListResolverId}").parse(arn2);this.ipamPrefixListResolverRef={ipamPrefixListResolverId:variables.IpamPrefixListResolverId,ipamPrefixListResolverArn:arn2}}}return new Import(scope,id,arn)}static fromIpamPrefixListResolverId(scope,id,ipamPrefixListResolverId){class Import extends cdk().Resource{ipamPrefixListResolverRef;constructor(scope2,id2,ipamPrefixListResolverId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-prefix-list-resolver/${IpamPrefixListResolverId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,IpamPrefixListResolverId:ipamPrefixListResolverId2});super(scope2,id2,{environmentFromArn:arn}),this.ipamPrefixListResolverRef={ipamPrefixListResolverId:ipamPrefixListResolverId2,ipamPrefixListResolverArn:arn}}}return new Import(scope,id,ipamPrefixListResolverId)}static arnForIPAMPrefixListResolver(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IIPAMPrefixListResolverRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForIPAMPrefixListResolver),error}return resource.ipamPrefixListResolverRef.ipamPrefixListResolverArn}_addressFamily;cdkTagManager;_description;_ipamId;_rules;_tags;cfnPropertyNames={addressFamily:"AddressFamily",tags:"Tags",description:"Description",ipamId:"IpamId",rules:"Rules"};constructor(scope,id,props){super(scope,id,{type:CfnIPAMPrefixListResolver.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnIPAMPrefixListResolverProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMPrefixListResolver),error}cdk().requireProperty(props,"addressFamily",this),this._addressFamily=props.addressFamily,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::IPAMPrefixListResolver",void 0,{tagPropertyName:"tags"}),this._description=props.description,this._ipamId=props.ipamId,this._rules=props.rules,this._tags=props.tags}get ipamPrefixListResolverRef(){return{ipamPrefixListResolverId:this.ref,ipamPrefixListResolverArn:this.attrIpamPrefixListResolverArn}}get addressFamily(){return this._addressFamily}set addressFamily(value){cdk().traceProperty(this.node,"AddressFamily"),this._addressFamily=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get ipamId(){return this._ipamId}set ipamId(value){cdk().traceProperty(this.node,"IpamId"),this._ipamId=value}get rules(){return this._rules}set rules(value){cdk().traceProperty(this.node,"Rules"),this._rules=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrIpamArn(){return cdk().Token.asString(this.getAtt("IpamArn",cdk().ResolutionTypeHint.STRING))}get attrIpamPrefixListResolverArn(){return cdk().Token.asString(this.getAtt("IpamPrefixListResolverArn",cdk().ResolutionTypeHint.STRING))}get attrIpamPrefixListResolverId(){return cdk().Token.asString(this.getAtt("IpamPrefixListResolverId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{addressFamily:this._addressFamily,tags:this.cdkTagManager.renderTags(this._tags),description:this._description,ipamId:this._ipamId,rules:this._rules}}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",CfnIPAMPrefixListResolver.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnIPAMPrefixListResolverPropsToCloudFormation(props)}}exports.CfnIPAMPrefixListResolver=CfnIPAMPrefixListResolver;function CfnIPAMPrefixListResolverIpamPrefixListResolverRuleConditionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("cidr",cdk().validateString)(properties.cidr)),errors.collect(cdk().propertyValidator("ipamPoolId",cdk().validateString)(properties.ipamPoolId)),errors.collect(cdk().propertyValidator("operation",cdk().requiredValidator)(properties.operation)),errors.collect(cdk().propertyValidator("operation",cdk().validateString)(properties.operation)),errors.collect(cdk().propertyValidator("resourceId",cdk().validateString)(properties.resourceId)),errors.collect(cdk().propertyValidator("resourceOwner",cdk().validateString)(properties.resourceOwner)),errors.collect(cdk().propertyValidator("resourceRegion",cdk().validateString)(properties.resourceRegion)),errors.collect(cdk().propertyValidator("resourceTag",cdk().validateCfnTag)(properties.resourceTag)),errors.wrap('supplied properties not correct for "IpamPrefixListResolverRuleConditionProperty"')}function convertCfnIPAMPrefixListResolverIpamPrefixListResolverRuleConditionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMPrefixListResolverIpamPrefixListResolverRuleConditionPropertyValidator(properties).assertSuccess(),{Cidr:cdk().stringToCloudFormation(properties.cidr),IpamPoolId:cdk().stringToCloudFormation(properties.ipamPoolId),Operation:cdk().stringToCloudFormation(properties.operation),ResourceId:cdk().stringToCloudFormation(properties.resourceId),ResourceOwner:cdk().stringToCloudFormation(properties.resourceOwner),ResourceRegion:cdk().stringToCloudFormation(properties.resourceRegion),ResourceTag:cdk().cfnTagToCloudFormation(properties.resourceTag)}):properties}function CfnIPAMPrefixListResolverIpamPrefixListResolverRuleConditionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse().FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("ipamPoolId","IpamPoolId",properties.IpamPoolId!=null?cfn_parse().FromCloudFormation.getString(properties.IpamPoolId):void 0),ret.addPropertyResult("operation","Operation",properties.Operation!=null?cfn_parse().FromCloudFormation.getString(properties.Operation):void 0),ret.addPropertyResult("resourceId","ResourceId",properties.ResourceId!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceId):void 0),ret.addPropertyResult("resourceOwner","ResourceOwner",properties.ResourceOwner!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceOwner):void 0),ret.addPropertyResult("resourceRegion","ResourceRegion",properties.ResourceRegion!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceRegion):void 0),ret.addPropertyResult("resourceTag","ResourceTag",properties.ResourceTag!=null?cfn_parse().FromCloudFormation.getCfnTag(properties.ResourceTag):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMPrefixListResolverIpamPrefixListResolverRulePropertyValidator(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("conditions",cdk().listValidator(CfnIPAMPrefixListResolverIpamPrefixListResolverRuleConditionPropertyValidator))(properties.conditions)),errors.collect(cdk().propertyValidator("ipamScopeId",cdk().validateString)(properties.ipamScopeId)),errors.collect(cdk().propertyValidator("resourceType",cdk().validateString)(properties.resourceType)),errors.collect(cdk().propertyValidator("ruleType",cdk().requiredValidator)(properties.ruleType)),errors.collect(cdk().propertyValidator("ruleType",cdk().validateString)(properties.ruleType)),errors.collect(cdk().propertyValidator("staticCidr",cdk().validateString)(properties.staticCidr)),errors.wrap('supplied properties not correct for "IpamPrefixListResolverRuleProperty"')}function convertCfnIPAMPrefixListResolverIpamPrefixListResolverRulePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMPrefixListResolverIpamPrefixListResolverRulePropertyValidator(properties).assertSuccess(),{Conditions:cdk().listMapper(convertCfnIPAMPrefixListResolverIpamPrefixListResolverRuleConditionPropertyToCloudFormation)(properties.conditions),IpamScopeId:cdk().stringToCloudFormation(properties.ipamScopeId),ResourceType:cdk().stringToCloudFormation(properties.resourceType),RuleType:cdk().stringToCloudFormation(properties.ruleType),StaticCidr:cdk().stringToCloudFormation(properties.staticCidr)}):properties}function CfnIPAMPrefixListResolverIpamPrefixListResolverRulePropertyFromCloudFormation(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("conditions","Conditions",properties.Conditions!=null?cfn_parse().FromCloudFormation.getArray(CfnIPAMPrefixListResolverIpamPrefixListResolverRuleConditionPropertyFromCloudFormation)(properties.Conditions):void 0),ret.addPropertyResult("ipamScopeId","IpamScopeId",properties.IpamScopeId!=null?cfn_parse().FromCloudFormation.getString(properties.IpamScopeId):void 0),ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse().FromCloudFormation.getString(properties.ResourceType):void 0),ret.addPropertyResult("ruleType","RuleType",properties.RuleType!=null?cfn_parse().FromCloudFormation.getString(properties.RuleType):void 0),ret.addPropertyResult("staticCidr","StaticCidr",properties.StaticCidr!=null?cfn_parse().FromCloudFormation.getString(properties.StaticCidr):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMPrefixListResolverPropsValidator(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("addressFamily",cdk().requiredValidator)(properties.addressFamily)),errors.collect(cdk().propertyValidator("addressFamily",cdk().validateString)(properties.addressFamily)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("ipamId",cdk().validateString)(properties.ipamId)),errors.collect(cdk().propertyValidator("rules",cdk().listValidator(CfnIPAMPrefixListResolverIpamPrefixListResolverRulePropertyValidator))(properties.rules)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPAMPrefixListResolverProps"')}function convertCfnIPAMPrefixListResolverPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMPrefixListResolverPropsValidator(properties).assertSuccess(),{AddressFamily:cdk().stringToCloudFormation(properties.addressFamily),Description:cdk().stringToCloudFormation(properties.description),IpamId:cdk().stringToCloudFormation(properties.ipamId),Rules:cdk().listMapper(convertCfnIPAMPrefixListResolverIpamPrefixListResolverRulePropertyToCloudFormation)(properties.rules),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPAMPrefixListResolverPropsFromCloudFormation(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("addressFamily","AddressFamily",properties.AddressFamily!=null?cfn_parse().FromCloudFormation.getString(properties.AddressFamily):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("ipamId","IpamId",properties.IpamId!=null?cfn_parse().FromCloudFormation.getString(properties.IpamId):void 0),ret.addPropertyResult("rules","Rules",properties.Rules!=null?cfn_parse().FromCloudFormation.getArray(CfnIPAMPrefixListResolverIpamPrefixListResolverRulePropertyFromCloudFormation)(properties.Rules):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 CfnIPAMPrefixListResolverTarget extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMPrefixListResolverTarget",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMPrefixListResolverTarget";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMPrefixListResolverTargetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnIPAMPrefixListResolverTarget(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 isCfnIPAMPrefixListResolverTarget(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnIPAMPrefixListResolverTarget.CFN_RESOURCE_TYPE_NAME}static fromIPAMPrefixListResolverTargetArn(scope,id,arn){class Import extends cdk().Resource{ipamPrefixListResolverTargetRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-prefix-list-resolver-target/${IpamPrefixListResolverTargetId}").parse(arn2);this.ipamPrefixListResolverTargetRef={ipamPrefixListResolverTargetId:variables.IpamPrefixListResolverTargetId,ipamPrefixListResolverTargetArn:arn2}}}return new Import(scope,id,arn)}static fromIpamPrefixListResolverTargetId(scope,id,ipamPrefixListResolverTargetId){class Import extends cdk().Resource{ipamPrefixListResolverTargetRef;constructor(scope2,id2,ipamPrefixListResolverTargetId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2::${Account}:ipam-prefix-list-resolver-target/${IpamPrefixListResolverTargetId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,IpamPrefixListResolverTargetId:ipamPrefixListResolverTargetId2});super(scope2,id2,{environmentFromArn:arn}),this.ipamPrefixListResolverTargetRef={ipamPrefixListResolverTargetId:ipamPrefixListResolverTargetId2,ipamPrefixListResolverTargetArn:arn}}}return new Import(scope,id,ipamPrefixListResolverTargetId)}static arnForIPAMPrefixListResolverTarget(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IIPAMPrefixListResolverTargetRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForIPAMPrefixListResolverTarget),error}return resource.ipamPrefixListResolverTargetRef.ipamPrefixListResolverTargetArn}cdkTagManager;_desiredVersion;_ipamPrefixListResolverId;_prefixListId;_prefixListRegion;_tags;_trackLatestVersion;cfnPropertyNames={tags:"Tags",desiredVersion:"DesiredVersion",ipamPrefixListResolverId:"IpamPrefixListResolverId",prefixListId:"PrefixListId",prefixListRegion:"PrefixListRegion",trackLatestVersion:"TrackLatestVersion"};constructor(scope,id,props){super(scope,id,{type:CfnIPAMPrefixListResolverTarget.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnIPAMPrefixListResolverTargetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMPrefixListResolverTarget),error}cdk().requireProperty(props,"ipamPrefixListResolverId",this),cdk().requireProperty(props,"prefixListId",this),cdk().requireProperty(props,"prefixListRegion",this),cdk().requireProperty(props,"trackLatestVersion",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::IPAMPrefixListResolverTarget",void 0,{tagPropertyName:"tags"}),this._desiredVersion=props.desiredVersion,this._ipamPrefixListResolverId=props.ipamPrefixListResolverId,this._prefixListId=props.prefixListId,this._prefixListRegion=props.prefixListRegion,this._tags=props.tags,this._trackLatestVersion=props.trackLatestVersion}get ipamPrefixListResolverTargetRef(){return{ipamPrefixListResolverTargetId:this.ref,ipamPrefixListResolverTargetArn:this.attrIpamPrefixListResolverTargetArn}}get desiredVersion(){return this._desiredVersion}set desiredVersion(value){cdk().traceProperty(this.node,"DesiredVersion"),this._desiredVersion=value}get ipamPrefixListResolverId(){return this._ipamPrefixListResolverId}set ipamPrefixListResolverId(value){cdk().traceProperty(this.node,"IpamPrefixListResolverId"),this._ipamPrefixListResolverId=value}get prefixListId(){return this._prefixListId}set prefixListId(value){cdk().traceProperty(this.node,"PrefixListId"),this._prefixListId=value}get prefixListRegion(){return this._prefixListRegion}set prefixListRegion(value){cdk().traceProperty(this.node,"PrefixListRegion"),this._prefixListRegion=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get trackLatestVersion(){return this._trackLatestVersion}set trackLatestVersion(value){cdk().traceProperty(this.node,"TrackLatestVersion"),this._trackLatestVersion=value}get attrIpamPrefixListResolverTargetArn(){return cdk().Token.asString(this.getAtt("IpamPrefixListResolverTargetArn",cdk().ResolutionTypeHint.STRING))}get attrIpamPrefixListResolverTargetId(){return cdk().Token.asString(this.getAtt("IpamPrefixListResolverTargetId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),desiredVersion:this._desiredVersion,ipamPrefixListResolverId:this._ipamPrefixListResolverId,prefixListId:this._prefixListId,prefixListRegion:this._prefixListRegion,trackLatestVersion:this._trackLatestVersion}}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",CfnIPAMPrefixListResolverTarget.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnIPAMPrefixListResolverTargetPropsToCloudFormation(props)}}exports.CfnIPAMPrefixListResolverTarget=CfnIPAMPrefixListResolverTarget;function CfnIPAMPrefixListResolverTargetPropsValidator(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("desiredVersion",cdk().validateNumber)(properties.desiredVersion)),errors.collect(cdk().propertyValidator("ipamPrefixListResolverId",cdk().requiredValidator)(properties.ipamPrefixListResolverId)),errors.collect(cdk().propertyValidator("ipamPrefixListResolverId",cdk().validateString)(properties.ipamPrefixListResolverId)),errors.collect(cdk().propertyValidator("prefixListId",cdk().requiredValidator)(properties.prefixListId)),errors.collect(cdk().propertyValidator("prefixListId",cdk().validateString)(properties.prefixListId)),errors.collect(cdk().propertyValidator("prefixListRegion",cdk().requiredValidator)(properties.prefixListRegion)),errors.collect(cdk().propertyValidator("prefixListRegion",cdk().validateString)(properties.prefixListRegion)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("trackLatestVersion",cdk().requiredValidator)(properties.trackLatestVersion)),errors.collect(cdk().propertyValidator("trackLatestVersion",cdk().validateBoolean)(properties.trackLatestVersion)),errors.wrap('supplied properties not correct for "CfnIPAMPrefixListResolverTargetProps"')}function convertCfnIPAMPrefixListResolverTargetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIPAMPrefixListResolverTargetPropsValidator(properties).assertSuccess(),{DesiredVersion:cdk().numberToCloudFormation(properties.desiredVersion),IpamPrefixListResolverId:cdk().stringToCloudFormation(properties.ipamPrefixListResolverId),PrefixListId:cdk().stringToCloudFormation(properties.prefixListId),PrefixListRegion:cdk().stringToCloudFormation(properties.prefixListRegion),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TrackLatestVersion:cdk().booleanToCloudFormation(properties.trackLatestVersion)}):properties}function CfnIPAMPrefixListResolverTargetPropsFromCloudFormation(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("desiredVersion","DesiredVersion",properties.DesiredVersion!=null?cfn_parse().FromCloudFormation.getNumber(properties.DesiredVersion):void 0),ret.addPropertyResult("ipamPrefixListResolverId","IpamPrefixListResolverId",properties.IpamPrefixListResolverId!=null?cfn_parse().FromCloudFormation.getString(properties.IpamPrefixListResolverId):void 0),ret.addPropertyResult("prefixListId","PrefixListId",properties.PrefixListId!=null?cfn_parse().FromCloudFormation.getString(properties.PrefixListId):void 0),ret.addPropertyResult("prefixListRegion","PrefixListRegion",properties.PrefixListRegion!=null?cfn_parse().FromCloudFormation.getString(properties.PrefixListRegion):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("trackLatestVersion","TrackLatestVersion",properties.TrackLatestVersion!=null?cfn_parse().FromCloudFormation.getBoolean(properties.TrackLatestVersion):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnIpPoolRouteTableAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnIpPoolRouteTableAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::IpPoolRouteTableAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIpPoolRouteTableAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnIpPoolRouteTableAssociation(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 isCfnIpPoolRouteTableAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnIpPoolRouteTableAssociation.CFN_RESOURCE_TYPE_NAME}_publicIpv4Pool;_routeTableId;cfnPropertyNames={publicIpv4Pool:"PublicIpv4Pool",routeTableId:"RouteTableId"};constructor(scope,id,props){super(scope,id,{type:CfnIpPoolRouteTableAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnIpPoolRouteTableAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIpPoolRouteTableAssociation),error}cdk().requireProperty(props,"publicIpv4Pool",this),cdk().requireProperty(props,"routeTableId",this),this._publicIpv4Pool=props.publicIpv4Pool,this._routeTableId=props.routeTableId}get ipPoolRouteTableAssociationRef(){return{associationId:this.ref}}get publicIpv4Pool(){return this._publicIpv4Pool}set publicIpv4Pool(value){cdk().traceProperty(this.node,"PublicIpv4Pool"),this._publicIpv4Pool=value}get routeTableId(){return this._routeTableId}set routeTableId(value){cdk().traceProperty(this.node,"RouteTableId"),this._routeTableId=value}get attrAssociationId(){return cdk().Token.asString(this.getAtt("AssociationId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{publicIpv4Pool:this._publicIpv4Pool,routeTableId:this._routeTableId}}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",CfnIpPoolRouteTableAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnIpPoolRouteTableAssociationPropsToCloudFormation(props)}}exports.CfnIpPoolRouteTableAssociation=CfnIpPoolRouteTableAssociation;function CfnIpPoolRouteTableAssociationPropsValidator(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("publicIpv4Pool",cdk().requiredValidator)(properties.publicIpv4Pool)),errors.collect(cdk().propertyValidator("publicIpv4Pool",cdk().validateString)(properties.publicIpv4Pool)),errors.collect(cdk().propertyValidator("routeTableId",cdk().requiredValidator)(properties.routeTableId)),errors.collect(cdk().propertyValidator("routeTableId",cdk().validateString)(properties.routeTableId)),errors.wrap('supplied properties not correct for "CfnIpPoolRouteTableAssociationProps"')}function convertCfnIpPoolRouteTableAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnIpPoolRouteTableAssociationPropsValidator(properties).assertSuccess(),{PublicIpv4Pool:cdk().stringToCloudFormation(properties.publicIpv4Pool),RouteTableId:cdk().stringToCloudFormation(properties.routeTableId)}):properties}function CfnIpPoolRouteTableAssociationPropsFromCloudFormation(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("publicIpv4Pool","PublicIpv4Pool",properties.PublicIpv4Pool!=null?cfn_parse().FromCloudFormation.getString(properties.PublicIpv4Pool):void 0),ret.addPropertyResult("routeTableId","RouteTableId",properties.RouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.RouteTableId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLocalGatewayVirtualInterface extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnLocalGatewayVirtualInterface",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::LocalGatewayVirtualInterface";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLocalGatewayVirtualInterfacePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLocalGatewayVirtualInterface(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 isCfnLocalGatewayVirtualInterface(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLocalGatewayVirtualInterface.CFN_RESOURCE_TYPE_NAME}static fromLocalGatewayVirtualInterfaceId(scope,id,localGatewayVirtualInterfaceId){class Import extends cdk().Resource{localGatewayVirtualInterfaceRef;constructor(scope2,id2,localGatewayVirtualInterfaceId2){super(scope2,id2),this.localGatewayVirtualInterfaceRef={localGatewayVirtualInterfaceId:localGatewayVirtualInterfaceId2}}}return new Import(scope,id,localGatewayVirtualInterfaceId)}static arnForLocalGatewayVirtualInterface(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ILocalGatewayVirtualInterfaceRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForLocalGatewayVirtualInterface),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:local-gateway-virtual-interface/${LocalGatewayVirtualInterfaceId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,LocalGatewayVirtualInterfaceId:resource.localGatewayVirtualInterfaceRef.localGatewayVirtualInterfaceId})}cdkTagManager;_localAddress;_localGatewayVirtualInterfaceGroupId;_outpostLagId;_peerAddress;_peerBgpAsn;_peerBgpAsnExtended;_tags;_vlan;cfnPropertyNames={tags:"Tags",localAddress:"LocalAddress",localGatewayVirtualInterfaceGroupId:"LocalGatewayVirtualInterfaceGroupId",outpostLagId:"OutpostLagId",peerAddress:"PeerAddress",peerBgpAsn:"PeerBgpAsn",peerBgpAsnExtended:"PeerBgpAsnExtended",vlan:"Vlan"};constructor(scope,id,props){super(scope,id,{type:CfnLocalGatewayVirtualInterface.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnLocalGatewayVirtualInterfaceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLocalGatewayVirtualInterface),error}cdk().requireProperty(props,"localAddress",this),cdk().requireProperty(props,"localGatewayVirtualInterfaceGroupId",this),cdk().requireProperty(props,"outpostLagId",this),cdk().requireProperty(props,"peerAddress",this),cdk().requireProperty(props,"vlan",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::LocalGatewayVirtualInterface",void 0,{tagPropertyName:"tags"}),this._localAddress=props.localAddress,this._localGatewayVirtualInterfaceGroupId=props.localGatewayVirtualInterfaceGroupId,this._outpostLagId=props.outpostLagId,this._peerAddress=props.peerAddress,this._peerBgpAsn=props.peerBgpAsn,this._peerBgpAsnExtended=props.peerBgpAsnExtended,this._tags=props.tags,this._vlan=props.vlan}get localGatewayVirtualInterfaceRef(){return{localGatewayVirtualInterfaceId:this.ref}}get localAddress(){return this._localAddress}set localAddress(value){cdk().traceProperty(this.node,"LocalAddress"),this._localAddress=value}get localGatewayVirtualInterfaceGroupId(){return this._localGatewayVirtualInterfaceGroupId}set localGatewayVirtualInterfaceGroupId(value){cdk().traceProperty(this.node,"LocalGatewayVirtualInterfaceGroupId"),this._localGatewayVirtualInterfaceGroupId=value}get outpostLagId(){return this._outpostLagId}set outpostLagId(value){cdk().traceProperty(this.node,"OutpostLagId"),this._outpostLagId=value}get peerAddress(){return this._peerAddress}set peerAddress(value){cdk().traceProperty(this.node,"PeerAddress"),this._peerAddress=value}get peerBgpAsn(){return this._peerBgpAsn}set peerBgpAsn(value){cdk().traceProperty(this.node,"PeerBgpAsn"),this._peerBgpAsn=value}get peerBgpAsnExtended(){return this._peerBgpAsnExtended}set peerBgpAsnExtended(value){cdk().traceProperty(this.node,"PeerBgpAsnExtended"),this._peerBgpAsnExtended=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get vlan(){return this._vlan}set vlan(value){cdk().traceProperty(this.node,"Vlan"),this._vlan=value}get attrConfigurationState(){return cdk().Token.asString(this.getAtt("ConfigurationState",cdk().ResolutionTypeHint.STRING))}get attrLocalBgpAsn(){return cdk().Token.asNumber(this.getAtt("LocalBgpAsn",cdk().ResolutionTypeHint.NUMBER))}get attrLocalGatewayId(){return cdk().Token.asString(this.getAtt("LocalGatewayId",cdk().ResolutionTypeHint.STRING))}get attrLocalGatewayVirtualInterfaceId(){return cdk().Token.asString(this.getAtt("LocalGatewayVirtualInterfaceId",cdk().ResolutionTypeHint.STRING))}get attrOwnerId(){return cdk().Token.asString(this.getAtt("OwnerId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),localAddress:this._localAddress,localGatewayVirtualInterfaceGroupId:this._localGatewayVirtualInterfaceGroupId,outpostLagId:this._outpostLagId,peerAddress:this._peerAddress,peerBgpAsn:this._peerBgpAsn,peerBgpAsnExtended:this._peerBgpAsnExtended,vlan:this._vlan}}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",CfnLocalGatewayVirtualInterface.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLocalGatewayVirtualInterfacePropsToCloudFormation(props)}}exports.CfnLocalGatewayVirtualInterface=CfnLocalGatewayVirtualInterface;function CfnLocalGatewayVirtualInterfacePropsValidator(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("localAddress",cdk().requiredValidator)(properties.localAddress)),errors.collect(cdk().propertyValidator("localAddress",cdk().validateString)(properties.localAddress)),errors.collect(cdk().propertyValidator("localGatewayVirtualInterfaceGroupId",cdk().requiredValidator)(properties.localGatewayVirtualInterfaceGroupId)),errors.collect(cdk().propertyValidator("localGatewayVirtualInterfaceGroupId",cdk().validateString)(properties.localGatewayVirtualInterfaceGroupId)),errors.collect(cdk().propertyValidator("outpostLagId",cdk().requiredValidator)(properties.outpostLagId)),errors.collect(cdk().propertyValidator("outpostLagId",cdk().validateString)(properties.outpostLagId)),errors.collect(cdk().propertyValidator("peerAddress",cdk().requiredValidator)(properties.peerAddress)),errors.collect(cdk().propertyValidator("peerAddress",cdk().validateString)(properties.peerAddress)),errors.collect(cdk().propertyValidator("peerBgpAsn",cdk().validateNumber)(properties.peerBgpAsn)),errors.collect(cdk().propertyValidator("peerBgpAsnExtended",cdk().validateNumber)(properties.peerBgpAsnExtended)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vlan",cdk().requiredValidator)(properties.vlan)),errors.collect(cdk().propertyValidator("vlan",cdk().validateNumber)(properties.vlan)),errors.wrap('supplied properties not correct for "CfnLocalGatewayVirtualInterfaceProps"')}function convertCfnLocalGatewayVirtualInterfacePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLocalGatewayVirtualInterfacePropsValidator(properties).assertSuccess(),{LocalAddress:cdk().stringToCloudFormation(properties.localAddress),LocalGatewayVirtualInterfaceGroupId:cdk().stringToCloudFormation(properties.localGatewayVirtualInterfaceGroupId),OutpostLagId:cdk().stringToCloudFormation(properties.outpostLagId),PeerAddress:cdk().stringToCloudFormation(properties.peerAddress),PeerBgpAsn:cdk().numberToCloudFormation(properties.peerBgpAsn),PeerBgpAsnExtended:cdk().numberToCloudFormation(properties.peerBgpAsnExtended),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Vlan:cdk().numberToCloudFormation(properties.vlan)}):properties}function CfnLocalGatewayVirtualInterfacePropsFromCloudFormation(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("localAddress","LocalAddress",properties.LocalAddress!=null?cfn_parse().FromCloudFormation.getString(properties.LocalAddress):void 0),ret.addPropertyResult("localGatewayVirtualInterfaceGroupId","LocalGatewayVirtualInterfaceGroupId",properties.LocalGatewayVirtualInterfaceGroupId!=null?cfn_parse().FromCloudFormation.getString(properties.LocalGatewayVirtualInterfaceGroupId):void 0),ret.addPropertyResult("outpostLagId","OutpostLagId",properties.OutpostLagId!=null?cfn_parse().FromCloudFormation.getString(properties.OutpostLagId):void 0),ret.addPropertyResult("peerAddress","PeerAddress",properties.PeerAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PeerAddress):void 0),ret.addPropertyResult("peerBgpAsn","PeerBgpAsn",properties.PeerBgpAsn!=null?cfn_parse().FromCloudFormation.getNumber(properties.PeerBgpAsn):void 0),ret.addPropertyResult("peerBgpAsnExtended","PeerBgpAsnExtended",properties.PeerBgpAsnExtended!=null?cfn_parse().FromCloudFormation.getNumber(properties.PeerBgpAsnExtended):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vlan","Vlan",properties.Vlan!=null?cfn_parse().FromCloudFormation.getNumber(properties.Vlan):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLocalGatewayVirtualInterfaceGroup extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnLocalGatewayVirtualInterfaceGroup",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::LocalGatewayVirtualInterfaceGroup";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLocalGatewayVirtualInterfaceGroupPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLocalGatewayVirtualInterfaceGroup(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 isCfnLocalGatewayVirtualInterfaceGroup(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLocalGatewayVirtualInterfaceGroup.CFN_RESOURCE_TYPE_NAME}static fromLocalGatewayVirtualInterfaceGroupArn(scope,id,arn){class Import extends cdk().Resource{localGatewayVirtualInterfaceGroupRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:local-gateway-virtual-interface-group/${LocalGatewayVirtualInterfaceGroupId}").parse(arn2);this.localGatewayVirtualInterfaceGroupRef={localGatewayVirtualInterfaceGroupId:variables.LocalGatewayVirtualInterfaceGroupId,localGatewayVirtualInterfaceGroupArn:arn2}}}return new Import(scope,id,arn)}static fromLocalGatewayVirtualInterfaceGroupId(scope,id,localGatewayVirtualInterfaceGroupId){class Import extends cdk().Resource{localGatewayVirtualInterfaceGroupRef;constructor(scope2,id2,localGatewayVirtualInterfaceGroupId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:local-gateway-virtual-interface-group/${LocalGatewayVirtualInterfaceGroupId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,LocalGatewayVirtualInterfaceGroupId:localGatewayVirtualInterfaceGroupId2});super(scope2,id2,{environmentFromArn:arn}),this.localGatewayVirtualInterfaceGroupRef={localGatewayVirtualInterfaceGroupId:localGatewayVirtualInterfaceGroupId2,localGatewayVirtualInterfaceGroupArn:arn}}}return new Import(scope,id,localGatewayVirtualInterfaceGroupId)}static arnForLocalGatewayVirtualInterfaceGroup(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ILocalGatewayVirtualInterfaceGroupRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForLocalGatewayVirtualInterfaceGroup),error}return resource.localGatewayVirtualInterfaceGroupRef.localGatewayVirtualInterfaceGroupArn}cdkTagManager;_localBgpAsn;_localBgpAsnExtended;_localGatewayId;_tags;cfnPropertyNames={tags:"Tags",localBgpAsn:"LocalBgpAsn",localBgpAsnExtended:"LocalBgpAsnExtended",localGatewayId:"LocalGatewayId"};constructor(scope,id,props){super(scope,id,{type:CfnLocalGatewayVirtualInterfaceGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnLocalGatewayVirtualInterfaceGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLocalGatewayVirtualInterfaceGroup),error}cdk().requireProperty(props,"localGatewayId",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::LocalGatewayVirtualInterfaceGroup",void 0,{tagPropertyName:"tags"}),this._localBgpAsn=props.localBgpAsn,this._localBgpAsnExtended=props.localBgpAsnExtended,this._localGatewayId=props.localGatewayId,this._tags=props.tags}get localGatewayVirtualInterfaceGroupRef(){return{localGatewayVirtualInterfaceGroupId:this.ref,localGatewayVirtualInterfaceGroupArn:this.attrLocalGatewayVirtualInterfaceGroupArn}}get localBgpAsn(){return this._localBgpAsn}set localBgpAsn(value){cdk().traceProperty(this.node,"LocalBgpAsn"),this._localBgpAsn=value}get localBgpAsnExtended(){return this._localBgpAsnExtended}set localBgpAsnExtended(value){cdk().traceProperty(this.node,"LocalBgpAsnExtended"),this._localBgpAsnExtended=value}get localGatewayId(){return this._localGatewayId}set localGatewayId(value){cdk().traceProperty(this.node,"LocalGatewayId"),this._localGatewayId=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrConfigurationState(){return cdk().Token.asString(this.getAtt("ConfigurationState",cdk().ResolutionTypeHint.STRING))}get attrLocalGatewayVirtualInterfaceGroupArn(){return cdk().Token.asString(this.getAtt("LocalGatewayVirtualInterfaceGroupArn",cdk().ResolutionTypeHint.STRING))}get attrLocalGatewayVirtualInterfaceGroupId(){return cdk().Token.asString(this.getAtt("LocalGatewayVirtualInterfaceGroupId",cdk().ResolutionTypeHint.STRING))}get attrLocalGatewayVirtualInterfaceIds(){return cdk().Token.asList(this.getAtt("LocalGatewayVirtualInterfaceIds",cdk().ResolutionTypeHint.STRING_LIST))}get attrOwnerId(){return cdk().Token.asString(this.getAtt("OwnerId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),localBgpAsn:this._localBgpAsn,localBgpAsnExtended:this._localBgpAsnExtended,localGatewayId:this._localGatewayId}}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",CfnLocalGatewayVirtualInterfaceGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLocalGatewayVirtualInterfaceGroupPropsToCloudFormation(props)}}exports.CfnLocalGatewayVirtualInterfaceGroup=CfnLocalGatewayVirtualInterfaceGroup;function CfnLocalGatewayVirtualInterfaceGroupPropsValidator(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("localBgpAsn",cdk().validateNumber)(properties.localBgpAsn)),errors.collect(cdk().propertyValidator("localBgpAsnExtended",cdk().validateNumber)(properties.localBgpAsnExtended)),errors.collect(cdk().propertyValidator("localGatewayId",cdk().requiredValidator)(properties.localGatewayId)),errors.collect(cdk().propertyValidator("localGatewayId",cdk().validateString)(properties.localGatewayId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnLocalGatewayVirtualInterfaceGroupProps"')}function convertCfnLocalGatewayVirtualInterfaceGroupPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLocalGatewayVirtualInterfaceGroupPropsValidator(properties).assertSuccess(),{LocalBgpAsn:cdk().numberToCloudFormation(properties.localBgpAsn),LocalBgpAsnExtended:cdk().numberToCloudFormation(properties.localBgpAsnExtended),LocalGatewayId:cdk().stringToCloudFormation(properties.localGatewayId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLocalGatewayVirtualInterfaceGroupPropsFromCloudFormation(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("localBgpAsn","LocalBgpAsn",properties.LocalBgpAsn!=null?cfn_parse().FromCloudFormation.getNumber(properties.LocalBgpAsn):void 0),ret.addPropertyResult("localBgpAsnExtended","LocalBgpAsnExtended",properties.LocalBgpAsnExtended!=null?cfn_parse().FromCloudFormation.getNumber(properties.LocalBgpAsnExtended):void 0),ret.addPropertyResult("localGatewayId","LocalGatewayId",properties.LocalGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.LocalGatewayId):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 CfnRouteServer extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnRouteServer",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::RouteServer";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRouteServerPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnRouteServer(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 isCfnRouteServer(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRouteServer.CFN_RESOURCE_TYPE_NAME}static fromRouteServerArn(scope,id,arn){class Import extends cdk().Resource{routeServerRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:route-server/${RouteServerId}").parse(arn2);this.routeServerRef={routeServerId:variables.RouteServerId,routeServerArn:arn2}}}return new Import(scope,id,arn)}static fromRouteServerId(scope,id,routeServerId){class Import extends cdk().Resource{routeServerRef;constructor(scope2,id2,routeServerId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:route-server/${RouteServerId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,RouteServerId:routeServerId2});super(scope2,id2,{environmentFromArn:arn}),this.routeServerRef={routeServerId:routeServerId2,routeServerArn:arn}}}return new Import(scope,id,routeServerId)}static arnForRouteServer(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IRouteServerRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRouteServer),error}return resource.routeServerRef.routeServerArn}_amazonSideAsn;cdkTagManager;_persistRoutes;_persistRoutesDuration;_snsNotificationsEnabled;_tags;cfnPropertyNames={amazonSideAsn:"AmazonSideAsn",tags:"Tags",persistRoutes:"PersistRoutes",persistRoutesDuration:"PersistRoutesDuration",snsNotificationsEnabled:"SnsNotificationsEnabled"};constructor(scope,id,props){super(scope,id,{type:CfnRouteServer.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnRouteServerProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRouteServer),error}cdk().requireProperty(props,"amazonSideAsn",this),this._amazonSideAsn=props.amazonSideAsn,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::RouteServer",void 0,{tagPropertyName:"tags"}),this._persistRoutes=props.persistRoutes,this._persistRoutesDuration=props.persistRoutesDuration,this._snsNotificationsEnabled=props.snsNotificationsEnabled,this._tags=props.tags}get routeServerRef(){return{routeServerId:this.ref,routeServerArn:this.attrArn}}get amazonSideAsn(){return this._amazonSideAsn}set amazonSideAsn(value){cdk().traceProperty(this.node,"AmazonSideAsn"),this._amazonSideAsn=value}get persistRoutes(){return this._persistRoutes}set persistRoutes(value){cdk().traceProperty(this.node,"PersistRoutes"),this._persistRoutes=value}get persistRoutesDuration(){return this._persistRoutesDuration}set persistRoutesDuration(value){cdk().traceProperty(this.node,"PersistRoutesDuration"),this._persistRoutesDuration=value}get snsNotificationsEnabled(){return this._snsNotificationsEnabled}set snsNotificationsEnabled(value){cdk().traceProperty(this.node,"SnsNotificationsEnabled"),this._snsNotificationsEnabled=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{amazonSideAsn:this._amazonSideAsn,tags:this.cdkTagManager.renderTags(this._tags),persistRoutes:this._persistRoutes,persistRoutesDuration:this._persistRoutesDuration,snsNotificationsEnabled:this._snsNotificationsEnabled}}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",CfnRouteServer.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRouteServerPropsToCloudFormation(props)}}exports.CfnRouteServer=CfnRouteServer;function CfnRouteServerPropsValidator(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("amazonSideAsn",cdk().requiredValidator)(properties.amazonSideAsn)),errors.collect(cdk().propertyValidator("amazonSideAsn",cdk().validateNumber)(properties.amazonSideAsn)),errors.collect(cdk().propertyValidator("persistRoutes",cdk().validateString)(properties.persistRoutes)),errors.collect(cdk().propertyValidator("persistRoutesDuration",cdk().validateNumber)(properties.persistRoutesDuration)),errors.collect(cdk().propertyValidator("snsNotificationsEnabled",cdk().validateBoolean)(properties.snsNotificationsEnabled)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnRouteServerProps"')}function convertCfnRouteServerPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouteServerPropsValidator(properties).assertSuccess(),{AmazonSideAsn:cdk().numberToCloudFormation(properties.amazonSideAsn),PersistRoutes:cdk().stringToCloudFormation(properties.persistRoutes),PersistRoutesDuration:cdk().numberToCloudFormation(properties.persistRoutesDuration),SnsNotificationsEnabled:cdk().booleanToCloudFormation(properties.snsNotificationsEnabled),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRouteServerPropsFromCloudFormation(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("amazonSideAsn","AmazonSideAsn",properties.AmazonSideAsn!=null?cfn_parse().FromCloudFormation.getNumber(properties.AmazonSideAsn):void 0),ret.addPropertyResult("persistRoutes","PersistRoutes",properties.PersistRoutes!=null?cfn_parse().FromCloudFormation.getString(properties.PersistRoutes):void 0),ret.addPropertyResult("persistRoutesDuration","PersistRoutesDuration",properties.PersistRoutesDuration!=null?cfn_parse().FromCloudFormation.getNumber(properties.PersistRoutesDuration):void 0),ret.addPropertyResult("snsNotificationsEnabled","SnsNotificationsEnabled",properties.SnsNotificationsEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SnsNotificationsEnabled):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 CfnRouteServerAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnRouteServerAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::RouteServerAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRouteServerAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnRouteServerAssociation(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 isCfnRouteServerAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRouteServerAssociation.CFN_RESOURCE_TYPE_NAME}_routeServerId;_vpcId;cfnPropertyNames={routeServerId:"RouteServerId",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnRouteServerAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnRouteServerAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRouteServerAssociation),error}cdk().requireProperty(props,"routeServerId",this),cdk().requireProperty(props,"vpcId",this),this._routeServerId=props.routeServerId,this._vpcId=props.vpcId}get routeServerAssociationRef(){return{routeServerId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),vpcId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get routeServerId(){return this._routeServerId}set routeServerId(value){cdk().traceProperty(this.node,"RouteServerId"),this._routeServerId=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get cfnProperties(){return{routeServerId:this._routeServerId,vpcId:this._vpcId}}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",CfnRouteServerAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRouteServerAssociationPropsToCloudFormation(props)}}exports.CfnRouteServerAssociation=CfnRouteServerAssociation;function CfnRouteServerAssociationPropsValidator(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("routeServerId",cdk().requiredValidator)(properties.routeServerId)),errors.collect(cdk().propertyValidator("routeServerId",cdk().validateString)(properties.routeServerId)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnRouteServerAssociationProps"')}function convertCfnRouteServerAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouteServerAssociationPropsValidator(properties).assertSuccess(),{RouteServerId:cdk().stringToCloudFormation(properties.routeServerId),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnRouteServerAssociationPropsFromCloudFormation(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("routeServerId","RouteServerId",properties.RouteServerId!=null?cfn_parse().FromCloudFormation.getString(properties.RouteServerId):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRouteServerEndpoint extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnRouteServerEndpoint",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::RouteServerEndpoint";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRouteServerEndpointPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnRouteServerEndpoint(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 isCfnRouteServerEndpoint(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRouteServerEndpoint.CFN_RESOURCE_TYPE_NAME}static fromRouteServerEndpointArn(scope,id,arn){class Import extends cdk().Resource{routeServerEndpointRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:route-server-endpoint/${RouteServerEndpointId}").parse(arn2);this.routeServerEndpointRef={routeServerEndpointId:variables.RouteServerEndpointId,routeServerEndpointArn:arn2}}}return new Import(scope,id,arn)}static fromRouteServerEndpointId(scope,id,routeServerEndpointId){class Import extends cdk().Resource{routeServerEndpointRef;constructor(scope2,id2,routeServerEndpointId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:route-server-endpoint/${RouteServerEndpointId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,RouteServerEndpointId:routeServerEndpointId2});super(scope2,id2,{environmentFromArn:arn}),this.routeServerEndpointRef={routeServerEndpointId:routeServerEndpointId2,routeServerEndpointArn:arn}}}return new Import(scope,id,routeServerEndpointId)}static arnForRouteServerEndpoint(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IRouteServerEndpointRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRouteServerEndpoint),error}return resource.routeServerEndpointRef.routeServerEndpointArn}cdkTagManager;_routeServerId;_subnetId;_tags;cfnPropertyNames={tags:"Tags",routeServerId:"RouteServerId",subnetId:"SubnetId"};constructor(scope,id,props){super(scope,id,{type:CfnRouteServerEndpoint.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnRouteServerEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRouteServerEndpoint),error}cdk().requireProperty(props,"routeServerId",this),cdk().requireProperty(props,"subnetId",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::RouteServerEndpoint",void 0,{tagPropertyName:"tags"}),this._routeServerId=props.routeServerId,this._subnetId=props.subnetId,this._tags=props.tags}get routeServerEndpointRef(){return{routeServerEndpointId:this.ref,routeServerEndpointArn:this.attrArn}}get routeServerId(){return this._routeServerId}set routeServerId(value){cdk().traceProperty(this.node,"RouteServerId"),this._routeServerId=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=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 attrEniAddress(){return cdk().Token.asString(this.getAtt("EniAddress",cdk().ResolutionTypeHint.STRING))}get attrEniId(){return cdk().Token.asString(this.getAtt("EniId",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrVpcId(){return cdk().Token.asString(this.getAtt("VpcId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),routeServerId:this._routeServerId,subnetId:this._subnetId}}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",CfnRouteServerEndpoint.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRouteServerEndpointPropsToCloudFormation(props)}}exports.CfnRouteServerEndpoint=CfnRouteServerEndpoint;function CfnRouteServerEndpointPropsValidator(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("routeServerId",cdk().requiredValidator)(properties.routeServerId)),errors.collect(cdk().propertyValidator("routeServerId",cdk().validateString)(properties.routeServerId)),errors.collect(cdk().propertyValidator("subnetId",cdk().requiredValidator)(properties.subnetId)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnRouteServerEndpointProps"')}function convertCfnRouteServerEndpointPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouteServerEndpointPropsValidator(properties).assertSuccess(),{RouteServerId:cdk().stringToCloudFormation(properties.routeServerId),SubnetId:cdk().stringToCloudFormation(properties.subnetId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRouteServerEndpointPropsFromCloudFormation(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("routeServerId","RouteServerId",properties.RouteServerId!=null?cfn_parse().FromCloudFormation.getString(properties.RouteServerId):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRouteServerPeer extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnRouteServerPeer",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::RouteServerPeer";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRouteServerPeerPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnRouteServerPeer(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 isCfnRouteServerPeer(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRouteServerPeer.CFN_RESOURCE_TYPE_NAME}static fromRouteServerPeerArn(scope,id,arn){class Import extends cdk().Resource{routeServerPeerRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:route-server-peer/${RouteServerPeerId}").parse(arn2);this.routeServerPeerRef={routeServerPeerId:variables.RouteServerPeerId,routeServerPeerArn:arn2}}}return new Import(scope,id,arn)}static fromRouteServerPeerId(scope,id,routeServerPeerId){class Import extends cdk().Resource{routeServerPeerRef;constructor(scope2,id2,routeServerPeerId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:route-server-peer/${RouteServerPeerId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,RouteServerPeerId:routeServerPeerId2});super(scope2,id2,{environmentFromArn:arn}),this.routeServerPeerRef={routeServerPeerId:routeServerPeerId2,routeServerPeerArn:arn}}}return new Import(scope,id,routeServerPeerId)}static arnForRouteServerPeer(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IRouteServerPeerRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForRouteServerPeer),error}return resource.routeServerPeerRef.routeServerPeerArn}_bgpOptions;cdkTagManager;_peerAddress;_routeServerEndpointId;_tags;cfnPropertyNames={bgpOptions:"BgpOptions",tags:"Tags",peerAddress:"PeerAddress",routeServerEndpointId:"RouteServerEndpointId"};constructor(scope,id,props){super(scope,id,{type:CfnRouteServerPeer.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnRouteServerPeerProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRouteServerPeer),error}cdk().requireProperty(props,"bgpOptions",this),cdk().requireProperty(props,"peerAddress",this),cdk().requireProperty(props,"routeServerEndpointId",this),this._bgpOptions=props.bgpOptions,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::RouteServerPeer",void 0,{tagPropertyName:"tags"}),this._peerAddress=props.peerAddress,this._routeServerEndpointId=props.routeServerEndpointId,this._tags=props.tags}get routeServerPeerRef(){return{routeServerPeerId:this.ref,routeServerPeerArn:this.attrArn}}get bgpOptions(){return this._bgpOptions}set bgpOptions(value){cdk().traceProperty(this.node,"BgpOptions"),this._bgpOptions=value}get peerAddress(){return this._peerAddress}set peerAddress(value){cdk().traceProperty(this.node,"PeerAddress"),this._peerAddress=value}get routeServerEndpointId(){return this._routeServerEndpointId}set routeServerEndpointId(value){cdk().traceProperty(this.node,"RouteServerEndpointId"),this._routeServerEndpointId=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 attrEndpointEniAddress(){return cdk().Token.asString(this.getAtt("EndpointEniAddress",cdk().ResolutionTypeHint.STRING))}get attrEndpointEniId(){return cdk().Token.asString(this.getAtt("EndpointEniId",cdk().ResolutionTypeHint.STRING))}get attrId(){return cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING))}get attrRouteServerId(){return cdk().Token.asString(this.getAtt("RouteServerId",cdk().ResolutionTypeHint.STRING))}get attrSubnetId(){return cdk().Token.asString(this.getAtt("SubnetId",cdk().ResolutionTypeHint.STRING))}get attrVpcId(){return cdk().Token.asString(this.getAtt("VpcId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{bgpOptions:this._bgpOptions,tags:this.cdkTagManager.renderTags(this._tags),peerAddress:this._peerAddress,routeServerEndpointId:this._routeServerEndpointId}}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",CfnRouteServerPeer.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRouteServerPeerPropsToCloudFormation(props)}}exports.CfnRouteServerPeer=CfnRouteServerPeer;function CfnRouteServerPeerBgpOptionsPropertyValidator(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("peerAsn",cdk().validateNumber)(properties.peerAsn)),errors.collect(cdk().propertyValidator("peerLivenessDetection",cdk().validateString)(properties.peerLivenessDetection)),errors.wrap('supplied properties not correct for "BgpOptionsProperty"')}function convertCfnRouteServerPeerBgpOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouteServerPeerBgpOptionsPropertyValidator(properties).assertSuccess(),{PeerAsn:cdk().numberToCloudFormation(properties.peerAsn),PeerLivenessDetection:cdk().stringToCloudFormation(properties.peerLivenessDetection)}):properties}function CfnRouteServerPeerBgpOptionsPropertyFromCloudFormation(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("peerAsn","PeerAsn",properties.PeerAsn!=null?cfn_parse().FromCloudFormation.getNumber(properties.PeerAsn):void 0),ret.addPropertyResult("peerLivenessDetection","PeerLivenessDetection",properties.PeerLivenessDetection!=null?cfn_parse().FromCloudFormation.getString(properties.PeerLivenessDetection):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRouteServerPeerPropsValidator(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("bgpOptions",cdk().requiredValidator)(properties.bgpOptions)),errors.collect(cdk().propertyValidator("bgpOptions",CfnRouteServerPeerBgpOptionsPropertyValidator)(properties.bgpOptions)),errors.collect(cdk().propertyValidator("peerAddress",cdk().requiredValidator)(properties.peerAddress)),errors.collect(cdk().propertyValidator("peerAddress",cdk().validateString)(properties.peerAddress)),errors.collect(cdk().propertyValidator("routeServerEndpointId",cdk().requiredValidator)(properties.routeServerEndpointId)),errors.collect(cdk().propertyValidator("routeServerEndpointId",cdk().validateString)(properties.routeServerEndpointId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnRouteServerPeerProps"')}function convertCfnRouteServerPeerPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouteServerPeerPropsValidator(properties).assertSuccess(),{BgpOptions:convertCfnRouteServerPeerBgpOptionsPropertyToCloudFormation(properties.bgpOptions),PeerAddress:cdk().stringToCloudFormation(properties.peerAddress),RouteServerEndpointId:cdk().stringToCloudFormation(properties.routeServerEndpointId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRouteServerPeerPropsFromCloudFormation(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("bgpOptions","BgpOptions",properties.BgpOptions!=null?CfnRouteServerPeerBgpOptionsPropertyFromCloudFormation(properties.BgpOptions):void 0),ret.addPropertyResult("peerAddress","PeerAddress",properties.PeerAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PeerAddress):void 0),ret.addPropertyResult("routeServerEndpointId","RouteServerEndpointId",properties.RouteServerEndpointId!=null?cfn_parse().FromCloudFormation.getString(properties.RouteServerEndpointId):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 CfnRouteServerPropagation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnRouteServerPropagation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::RouteServerPropagation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRouteServerPropagationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnRouteServerPropagation(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 isCfnRouteServerPropagation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnRouteServerPropagation.CFN_RESOURCE_TYPE_NAME}_routeServerId;_routeTableId;cfnPropertyNames={routeServerId:"RouteServerId",routeTableId:"RouteTableId"};constructor(scope,id,props){super(scope,id,{type:CfnRouteServerPropagation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnRouteServerPropagationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRouteServerPropagation),error}cdk().requireProperty(props,"routeServerId",this),cdk().requireProperty(props,"routeTableId",this),this._routeServerId=props.routeServerId,this._routeTableId=props.routeTableId}get routeServerPropagationRef(){return{routeServerId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),routeTableId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get routeServerId(){return this._routeServerId}set routeServerId(value){cdk().traceProperty(this.node,"RouteServerId"),this._routeServerId=value}get routeTableId(){return this._routeTableId}set routeTableId(value){cdk().traceProperty(this.node,"RouteTableId"),this._routeTableId=value}get cfnProperties(){return{routeServerId:this._routeServerId,routeTableId:this._routeTableId}}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",CfnRouteServerPropagation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnRouteServerPropagationPropsToCloudFormation(props)}}exports.CfnRouteServerPropagation=CfnRouteServerPropagation;function CfnRouteServerPropagationPropsValidator(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("routeServerId",cdk().requiredValidator)(properties.routeServerId)),errors.collect(cdk().propertyValidator("routeServerId",cdk().validateString)(properties.routeServerId)),errors.collect(cdk().propertyValidator("routeTableId",cdk().requiredValidator)(properties.routeTableId)),errors.collect(cdk().propertyValidator("routeTableId",cdk().validateString)(properties.routeTableId)),errors.wrap('supplied properties not correct for "CfnRouteServerPropagationProps"')}function convertCfnRouteServerPropagationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnRouteServerPropagationPropsValidator(properties).assertSuccess(),{RouteServerId:cdk().stringToCloudFormation(properties.routeServerId),RouteTableId:cdk().stringToCloudFormation(properties.routeTableId)}):properties}function CfnRouteServerPropagationPropsFromCloudFormation(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("routeServerId","RouteServerId",properties.RouteServerId!=null?cfn_parse().FromCloudFormation.getString(properties.RouteServerId):void 0),ret.addPropertyResult("routeTableId","RouteTableId",properties.RouteTableId!=null?cfn_parse().FromCloudFormation.getString(properties.RouteTableId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityGroupVpcAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnSecurityGroupVpcAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::SecurityGroupVpcAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityGroupVpcAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSecurityGroupVpcAssociation(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 isCfnSecurityGroupVpcAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSecurityGroupVpcAssociation.CFN_RESOURCE_TYPE_NAME}_groupId;_vpcId;cfnPropertyNames={groupId:"GroupId",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnSecurityGroupVpcAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnSecurityGroupVpcAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityGroupVpcAssociation),error}cdk().requireProperty(props,"groupId",this),cdk().requireProperty(props,"vpcId",this),this._groupId=props.groupId,this._vpcId=props.vpcId}get securityGroupVpcAssociationRef(){return{groupId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),vpcId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get groupId(){return this._groupId}set groupId(value){cdk().traceProperty(this.node,"GroupId"),this._groupId=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrStateReason(){return cdk().Token.asString(this.getAtt("StateReason",cdk().ResolutionTypeHint.STRING))}get attrVpcOwnerId(){return cdk().Token.asString(this.getAtt("VpcOwnerId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{groupId:this._groupId,vpcId:this._vpcId}}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",CfnSecurityGroupVpcAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSecurityGroupVpcAssociationPropsToCloudFormation(props)}}exports.CfnSecurityGroupVpcAssociation=CfnSecurityGroupVpcAssociation;function CfnSecurityGroupVpcAssociationPropsValidator(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("groupId",cdk().requiredValidator)(properties.groupId)),errors.collect(cdk().propertyValidator("groupId",cdk().validateString)(properties.groupId)),errors.collect(cdk().propertyValidator("vpcId",cdk().requiredValidator)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnSecurityGroupVpcAssociationProps"')}function convertCfnSecurityGroupVpcAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSecurityGroupVpcAssociationPropsValidator(properties).assertSuccess(),{GroupId:cdk().stringToCloudFormation(properties.groupId),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnSecurityGroupVpcAssociationPropsFromCloudFormation(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("groupId","GroupId",properties.GroupId!=null?cfn_parse().FromCloudFormation.getString(properties.GroupId):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSnapshotBlockPublicAccess extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnSnapshotBlockPublicAccess",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::SnapshotBlockPublicAccess";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSnapshotBlockPublicAccessPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSnapshotBlockPublicAccess(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 isCfnSnapshotBlockPublicAccess(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSnapshotBlockPublicAccess.CFN_RESOURCE_TYPE_NAME}_state;cfnPropertyNames={state:"State"};constructor(scope,id,props){super(scope,id,{type:CfnSnapshotBlockPublicAccess.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnSnapshotBlockPublicAccessProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSnapshotBlockPublicAccess),error}cdk().requireProperty(props,"state",this),this._state=props.state}get snapshotBlockPublicAccessRef(){return{accountId:this.ref}}get state(){return this._state}set state(value){cdk().traceProperty(this.node,"State"),this._state=value}get attrAccountId(){return cdk().Token.asString(this.getAtt("AccountId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{state:this._state}}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",CfnSnapshotBlockPublicAccess.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSnapshotBlockPublicAccessPropsToCloudFormation(props)}}exports.CfnSnapshotBlockPublicAccess=CfnSnapshotBlockPublicAccess;function CfnSnapshotBlockPublicAccessPropsValidator(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("state",cdk().requiredValidator)(properties.state)),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.wrap('supplied properties not correct for "CfnSnapshotBlockPublicAccessProps"')}function convertCfnSnapshotBlockPublicAccessPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSnapshotBlockPublicAccessPropsValidator(properties).assertSuccess(),{State:cdk().stringToCloudFormation(properties.state)}):properties}function CfnSnapshotBlockPublicAccessPropsFromCloudFormation(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("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSqlHaStandbyDetectedInstance extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnSqlHaStandbyDetectedInstance",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::SqlHaStandbyDetectedInstance";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSqlHaStandbyDetectedInstancePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSqlHaStandbyDetectedInstance(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 isCfnSqlHaStandbyDetectedInstance(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSqlHaStandbyDetectedInstance.CFN_RESOURCE_TYPE_NAME}_instanceId;_sqlServerCredentials;cfnPropertyNames={instanceId:"InstanceId",sqlServerCredentials:"SqlServerCredentials"};constructor(scope,id,props){super(scope,id,{type:CfnSqlHaStandbyDetectedInstance.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnSqlHaStandbyDetectedInstanceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSqlHaStandbyDetectedInstance),error}cdk().requireProperty(props,"instanceId",this),this._instanceId=props.instanceId,this._sqlServerCredentials=props.sqlServerCredentials}get sqlHaStandbyDetectedInstanceRef(){return{instanceId:this.ref}}get instanceId(){return this._instanceId}set instanceId(value){cdk().traceProperty(this.node,"InstanceId"),this._instanceId=value}get sqlServerCredentials(){return this._sqlServerCredentials}set sqlServerCredentials(value){cdk().traceProperty(this.node,"SqlServerCredentials"),this._sqlServerCredentials=value}get attrHaStatus(){return cdk().Token.asString(this.getAtt("HaStatus",cdk().ResolutionTypeHint.STRING))}get attrLastUpdatedTime(){return cdk().Token.asString(this.getAtt("LastUpdatedTime",cdk().ResolutionTypeHint.STRING))}get attrSqlServerLicenseUsage(){return cdk().Token.asString(this.getAtt("SqlServerLicenseUsage",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{instanceId:this._instanceId,sqlServerCredentials:this._sqlServerCredentials}}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",CfnSqlHaStandbyDetectedInstance.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSqlHaStandbyDetectedInstancePropsToCloudFormation(props)}}exports.CfnSqlHaStandbyDetectedInstance=CfnSqlHaStandbyDetectedInstance;function CfnSqlHaStandbyDetectedInstancePropsValidator(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("instanceId",cdk().requiredValidator)(properties.instanceId)),errors.collect(cdk().propertyValidator("instanceId",cdk().validateString)(properties.instanceId)),errors.collect(cdk().propertyValidator("sqlServerCredentials",cdk().validateString)(properties.sqlServerCredentials)),errors.wrap('supplied properties not correct for "CfnSqlHaStandbyDetectedInstanceProps"')}function convertCfnSqlHaStandbyDetectedInstancePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSqlHaStandbyDetectedInstancePropsValidator(properties).assertSuccess(),{InstanceId:cdk().stringToCloudFormation(properties.instanceId),SqlServerCredentials:cdk().stringToCloudFormation(properties.sqlServerCredentials)}):properties}function CfnSqlHaStandbyDetectedInstancePropsFromCloudFormation(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("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse().FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("sqlServerCredentials","SqlServerCredentials",properties.SqlServerCredentials!=null?cfn_parse().FromCloudFormation.getString(properties.SqlServerCredentials):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayConnectPeer extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayConnectPeer",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayConnectPeer";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayConnectPeerPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayConnectPeer(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 isCfnTransitGatewayConnectPeer(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayConnectPeer.CFN_RESOURCE_TYPE_NAME}static fromTransitGatewayConnectPeerId(scope,id,transitGatewayConnectPeerId){class Import extends cdk().Resource{transitGatewayConnectPeerRef;constructor(scope2,id2,transitGatewayConnectPeerId2){super(scope2,id2),this.transitGatewayConnectPeerRef={transitGatewayConnectPeerId:transitGatewayConnectPeerId2}}}return new Import(scope,id,transitGatewayConnectPeerId)}static arnForTransitGatewayConnectPeer(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ITransitGatewayConnectPeerRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTransitGatewayConnectPeer),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-connect-peer/${TransitGatewayConnectPeerId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,TransitGatewayConnectPeerId:resource.transitGatewayConnectPeerRef.transitGatewayConnectPeerId})}cdkTagManager;_connectPeerConfiguration;_tags;_transitGatewayAttachmentId;cfnPropertyNames={tags:"Tags",connectPeerConfiguration:"ConnectPeerConfiguration",transitGatewayAttachmentId:"TransitGatewayAttachmentId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayConnectPeer.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayConnectPeerProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayConnectPeer),error}cdk().requireProperty(props,"connectPeerConfiguration",this),cdk().requireProperty(props,"transitGatewayAttachmentId",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TransitGatewayConnectPeer",void 0,{tagPropertyName:"tags"}),this._connectPeerConfiguration=props.connectPeerConfiguration,this._tags=props.tags,this._transitGatewayAttachmentId=props.transitGatewayAttachmentId}get transitGatewayConnectPeerRef(){return{transitGatewayConnectPeerId:this.ref}}get connectPeerConfiguration(){return this._connectPeerConfiguration}set connectPeerConfiguration(value){cdk().traceProperty(this.node,"ConnectPeerConfiguration"),this._connectPeerConfiguration=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get transitGatewayAttachmentId(){return this._transitGatewayAttachmentId}set transitGatewayAttachmentId(value){cdk().traceProperty(this.node,"TransitGatewayAttachmentId"),this._transitGatewayAttachmentId=value}get attrConnectPeerConfigurationBgpConfigurations(){return this.getAtt("ConnectPeerConfiguration.BgpConfigurations")}get attrConnectPeerConfigurationProtocol(){return cdk().Token.asString(this.getAtt("ConnectPeerConfiguration.Protocol",cdk().ResolutionTypeHint.STRING))}get attrCreationTime(){return cdk().Token.asString(this.getAtt("CreationTime",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayConnectPeerId(){return cdk().Token.asString(this.getAtt("TransitGatewayConnectPeerId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),connectPeerConfiguration:this._connectPeerConfiguration,transitGatewayAttachmentId:this._transitGatewayAttachmentId}}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",CfnTransitGatewayConnectPeer.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayConnectPeerPropsToCloudFormation(props)}}exports.CfnTransitGatewayConnectPeer=CfnTransitGatewayConnectPeer;function CfnTransitGatewayConnectPeerTransitGatewayAttachmentBgpConfigurationPropertyValidator(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("bgpStatus",cdk().validateString)(properties.bgpStatus)),errors.collect(cdk().propertyValidator("peerAddress",cdk().validateString)(properties.peerAddress)),errors.collect(cdk().propertyValidator("peerAsn",cdk().validateNumber)(properties.peerAsn)),errors.collect(cdk().propertyValidator("transitGatewayAddress",cdk().validateString)(properties.transitGatewayAddress)),errors.collect(cdk().propertyValidator("transitGatewayAsn",cdk().validateNumber)(properties.transitGatewayAsn)),errors.wrap('supplied properties not correct for "TransitGatewayAttachmentBgpConfigurationProperty"')}function convertCfnTransitGatewayConnectPeerTransitGatewayAttachmentBgpConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayConnectPeerTransitGatewayAttachmentBgpConfigurationPropertyValidator(properties).assertSuccess(),{BgpStatus:cdk().stringToCloudFormation(properties.bgpStatus),PeerAddress:cdk().stringToCloudFormation(properties.peerAddress),PeerAsn:cdk().numberToCloudFormation(properties.peerAsn),TransitGatewayAddress:cdk().stringToCloudFormation(properties.transitGatewayAddress),TransitGatewayAsn:cdk().numberToCloudFormation(properties.transitGatewayAsn)}):properties}function CfnTransitGatewayConnectPeerTransitGatewayAttachmentBgpConfigurationPropertyFromCloudFormation(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("bgpStatus","BgpStatus",properties.BgpStatus!=null?cfn_parse().FromCloudFormation.getString(properties.BgpStatus):void 0),ret.addPropertyResult("peerAddress","PeerAddress",properties.PeerAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PeerAddress):void 0),ret.addPropertyResult("peerAsn","PeerAsn",properties.PeerAsn!=null?cfn_parse().FromCloudFormation.getNumber(properties.PeerAsn):void 0),ret.addPropertyResult("transitGatewayAddress","TransitGatewayAddress",properties.TransitGatewayAddress!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayAddress):void 0),ret.addPropertyResult("transitGatewayAsn","TransitGatewayAsn",properties.TransitGatewayAsn!=null?cfn_parse().FromCloudFormation.getNumber(properties.TransitGatewayAsn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTransitGatewayConnectPeerTransitGatewayConnectPeerConfigurationPropertyValidator(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("bgpConfigurations",cdk().listValidator(CfnTransitGatewayConnectPeerTransitGatewayAttachmentBgpConfigurationPropertyValidator))(properties.bgpConfigurations)),errors.collect(cdk().propertyValidator("insideCidrBlocks",cdk().requiredValidator)(properties.insideCidrBlocks)),errors.collect(cdk().propertyValidator("insideCidrBlocks",cdk().listValidator(cdk().validateString))(properties.insideCidrBlocks)),errors.collect(cdk().propertyValidator("peerAddress",cdk().requiredValidator)(properties.peerAddress)),errors.collect(cdk().propertyValidator("peerAddress",cdk().validateString)(properties.peerAddress)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("transitGatewayAddress",cdk().validateString)(properties.transitGatewayAddress)),errors.wrap('supplied properties not correct for "TransitGatewayConnectPeerConfigurationProperty"')}function convertCfnTransitGatewayConnectPeerTransitGatewayConnectPeerConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayConnectPeerTransitGatewayConnectPeerConfigurationPropertyValidator(properties).assertSuccess(),{BgpConfigurations:cdk().listMapper(convertCfnTransitGatewayConnectPeerTransitGatewayAttachmentBgpConfigurationPropertyToCloudFormation)(properties.bgpConfigurations),InsideCidrBlocks:cdk().listMapper(cdk().stringToCloudFormation)(properties.insideCidrBlocks),PeerAddress:cdk().stringToCloudFormation(properties.peerAddress),Protocol:cdk().stringToCloudFormation(properties.protocol),TransitGatewayAddress:cdk().stringToCloudFormation(properties.transitGatewayAddress)}):properties}function CfnTransitGatewayConnectPeerTransitGatewayConnectPeerConfigurationPropertyFromCloudFormation(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("bgpConfigurations","BgpConfigurations",properties.BgpConfigurations!=null?cfn_parse().FromCloudFormation.getArray(CfnTransitGatewayConnectPeerTransitGatewayAttachmentBgpConfigurationPropertyFromCloudFormation)(properties.BgpConfigurations):void 0),ret.addPropertyResult("insideCidrBlocks","InsideCidrBlocks",properties.InsideCidrBlocks!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.InsideCidrBlocks):void 0),ret.addPropertyResult("peerAddress","PeerAddress",properties.PeerAddress!=null?cfn_parse().FromCloudFormation.getString(properties.PeerAddress):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("transitGatewayAddress","TransitGatewayAddress",properties.TransitGatewayAddress!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTransitGatewayConnectPeerPropsValidator(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("connectPeerConfiguration",cdk().requiredValidator)(properties.connectPeerConfiguration)),errors.collect(cdk().propertyValidator("connectPeerConfiguration",CfnTransitGatewayConnectPeerTransitGatewayConnectPeerConfigurationPropertyValidator)(properties.connectPeerConfiguration)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayAttachmentId",cdk().requiredValidator)(properties.transitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("transitGatewayAttachmentId",cdk().validateString)(properties.transitGatewayAttachmentId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayConnectPeerProps"')}function convertCfnTransitGatewayConnectPeerPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayConnectPeerPropsValidator(properties).assertSuccess(),{ConnectPeerConfiguration:convertCfnTransitGatewayConnectPeerTransitGatewayConnectPeerConfigurationPropertyToCloudFormation(properties.connectPeerConfiguration),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayAttachmentId:cdk().stringToCloudFormation(properties.transitGatewayAttachmentId)}):properties}function CfnTransitGatewayConnectPeerPropsFromCloudFormation(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("connectPeerConfiguration","ConnectPeerConfiguration",properties.ConnectPeerConfiguration!=null?CfnTransitGatewayConnectPeerTransitGatewayConnectPeerConfigurationPropertyFromCloudFormation(properties.ConnectPeerConfiguration):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayAttachmentId","TransitGatewayAttachmentId",properties.TransitGatewayAttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayAttachmentId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMeteringPolicy extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMeteringPolicy",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMeteringPolicy";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMeteringPolicyPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayMeteringPolicy(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 isCfnTransitGatewayMeteringPolicy(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayMeteringPolicy.CFN_RESOURCE_TYPE_NAME}static fromTransitGatewayMeteringPolicyId(scope,id,transitGatewayMeteringPolicyId){class Import extends cdk().Resource{transitGatewayMeteringPolicyRef;constructor(scope2,id2,transitGatewayMeteringPolicyId2){super(scope2,id2),this.transitGatewayMeteringPolicyRef={transitGatewayMeteringPolicyId:transitGatewayMeteringPolicyId2}}}return new Import(scope,id,transitGatewayMeteringPolicyId)}static arnForTransitGatewayMeteringPolicy(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_ITransitGatewayMeteringPolicyRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTransitGatewayMeteringPolicy),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-metering-policy/${TransitGatewayMeteringPolicyId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,TransitGatewayMeteringPolicyId:resource.transitGatewayMeteringPolicyRef.transitGatewayMeteringPolicyId})}cdkTagManager;_middleboxAttachmentIds;_tags;_transitGatewayId;cfnPropertyNames={tags:"Tags",middleboxAttachmentIds:"MiddleboxAttachmentIds",transitGatewayId:"TransitGatewayId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMeteringPolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayMeteringPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMeteringPolicy),error}cdk().requireProperty(props,"transitGatewayId",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::TransitGatewayMeteringPolicy",void 0,{tagPropertyName:"tags"}),this._middleboxAttachmentIds=props.middleboxAttachmentIds,this._tags=props.tags,this._transitGatewayId=props.transitGatewayId}get transitGatewayMeteringPolicyRef(){return{transitGatewayMeteringPolicyId:this.ref}}get middleboxAttachmentIds(){return this._middleboxAttachmentIds}set middleboxAttachmentIds(value){cdk().traceProperty(this.node,"MiddleboxAttachmentIds"),this._middleboxAttachmentIds=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get transitGatewayId(){return this._transitGatewayId}set transitGatewayId(value){cdk().traceProperty(this.node,"TransitGatewayId"),this._transitGatewayId=value}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayMeteringPolicyId(){return cdk().Token.asString(this.getAtt("TransitGatewayMeteringPolicyId",cdk().ResolutionTypeHint.STRING))}get attrUpdateEffectiveAt(){return cdk().Token.asString(this.getAtt("UpdateEffectiveAt",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),middleboxAttachmentIds:this._middleboxAttachmentIds,transitGatewayId:this._transitGatewayId}}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",CfnTransitGatewayMeteringPolicy.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayMeteringPolicyPropsToCloudFormation(props)}}exports.CfnTransitGatewayMeteringPolicy=CfnTransitGatewayMeteringPolicy;function CfnTransitGatewayMeteringPolicyPropsValidator(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("middleboxAttachmentIds",cdk().listValidator(cdk().validateString))(properties.middleboxAttachmentIds)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().requiredValidator)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().validateString)(properties.transitGatewayId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMeteringPolicyProps"')}function convertCfnTransitGatewayMeteringPolicyPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayMeteringPolicyPropsValidator(properties).assertSuccess(),{MiddleboxAttachmentIds:cdk().listMapper(cdk().stringToCloudFormation)(properties.middleboxAttachmentIds),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayId:cdk().stringToCloudFormation(properties.transitGatewayId)}):properties}function CfnTransitGatewayMeteringPolicyPropsFromCloudFormation(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("middleboxAttachmentIds","MiddleboxAttachmentIds",properties.MiddleboxAttachmentIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.MiddleboxAttachmentIds):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMeteringPolicyEntry extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMeteringPolicyEntry",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMeteringPolicyEntry";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMeteringPolicyEntryPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayMeteringPolicyEntry(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 isCfnTransitGatewayMeteringPolicyEntry(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayMeteringPolicyEntry.CFN_RESOURCE_TYPE_NAME}_destinationCidrBlock;_destinationPortRange;_destinationTransitGatewayAttachmentId;_destinationTransitGatewayAttachmentType;_meteredAccount;_policyRuleNumber;_protocol;_sourceCidrBlock;_sourcePortRange;_sourceTransitGatewayAttachmentId;_sourceTransitGatewayAttachmentType;_transitGatewayMeteringPolicyId;cfnPropertyNames={destinationCidrBlock:"DestinationCidrBlock",destinationPortRange:"DestinationPortRange",destinationTransitGatewayAttachmentId:"DestinationTransitGatewayAttachmentId",destinationTransitGatewayAttachmentType:"DestinationTransitGatewayAttachmentType",meteredAccount:"MeteredAccount",policyRuleNumber:"PolicyRuleNumber",protocol:"Protocol",sourceCidrBlock:"SourceCidrBlock",sourcePortRange:"SourcePortRange",sourceTransitGatewayAttachmentId:"SourceTransitGatewayAttachmentId",sourceTransitGatewayAttachmentType:"SourceTransitGatewayAttachmentType",transitGatewayMeteringPolicyId:"TransitGatewayMeteringPolicyId"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMeteringPolicyEntry.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnTransitGatewayMeteringPolicyEntryProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMeteringPolicyEntry),error}cdk().requireProperty(props,"meteredAccount",this),cdk().requireProperty(props,"policyRuleNumber",this),cdk().requireProperty(props,"transitGatewayMeteringPolicyId",this),this._destinationCidrBlock=props.destinationCidrBlock,this._destinationPortRange=props.destinationPortRange,this._destinationTransitGatewayAttachmentId=props.destinationTransitGatewayAttachmentId,this._destinationTransitGatewayAttachmentType=props.destinationTransitGatewayAttachmentType,this._meteredAccount=props.meteredAccount,this._policyRuleNumber=props.policyRuleNumber,this._protocol=props.protocol,this._sourceCidrBlock=props.sourceCidrBlock,this._sourcePortRange=props.sourcePortRange,this._sourceTransitGatewayAttachmentId=props.sourceTransitGatewayAttachmentId,this._sourceTransitGatewayAttachmentType=props.sourceTransitGatewayAttachmentType,this._transitGatewayMeteringPolicyId=props.transitGatewayMeteringPolicyId}get transitGatewayMeteringPolicyEntryRef(){return{transitGatewayMeteringPolicyId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),policyRuleNumber:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get destinationCidrBlock(){return this._destinationCidrBlock}set destinationCidrBlock(value){cdk().traceProperty(this.node,"DestinationCidrBlock"),this._destinationCidrBlock=value}get destinationPortRange(){return this._destinationPortRange}set destinationPortRange(value){cdk().traceProperty(this.node,"DestinationPortRange"),this._destinationPortRange=value}get destinationTransitGatewayAttachmentId(){return this._destinationTransitGatewayAttachmentId}set destinationTransitGatewayAttachmentId(value){cdk().traceProperty(this.node,"DestinationTransitGatewayAttachmentId"),this._destinationTransitGatewayAttachmentId=value}get destinationTransitGatewayAttachmentType(){return this._destinationTransitGatewayAttachmentType}set destinationTransitGatewayAttachmentType(value){cdk().traceProperty(this.node,"DestinationTransitGatewayAttachmentType"),this._destinationTransitGatewayAttachmentType=value}get meteredAccount(){return this._meteredAccount}set meteredAccount(value){cdk().traceProperty(this.node,"MeteredAccount"),this._meteredAccount=value}get policyRuleNumber(){return this._policyRuleNumber}set policyRuleNumber(value){cdk().traceProperty(this.node,"PolicyRuleNumber"),this._policyRuleNumber=value}get protocol(){return this._protocol}set protocol(value){cdk().traceProperty(this.node,"Protocol"),this._protocol=value}get sourceCidrBlock(){return this._sourceCidrBlock}set sourceCidrBlock(value){cdk().traceProperty(this.node,"SourceCidrBlock"),this._sourceCidrBlock=value}get sourcePortRange(){return this._sourcePortRange}set sourcePortRange(value){cdk().traceProperty(this.node,"SourcePortRange"),this._sourcePortRange=value}get sourceTransitGatewayAttachmentId(){return this._sourceTransitGatewayAttachmentId}set sourceTransitGatewayAttachmentId(value){cdk().traceProperty(this.node,"SourceTransitGatewayAttachmentId"),this._sourceTransitGatewayAttachmentId=value}get sourceTransitGatewayAttachmentType(){return this._sourceTransitGatewayAttachmentType}set sourceTransitGatewayAttachmentType(value){cdk().traceProperty(this.node,"SourceTransitGatewayAttachmentType"),this._sourceTransitGatewayAttachmentType=value}get transitGatewayMeteringPolicyId(){return this._transitGatewayMeteringPolicyId}set transitGatewayMeteringPolicyId(value){cdk().traceProperty(this.node,"TransitGatewayMeteringPolicyId"),this._transitGatewayMeteringPolicyId=value}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrUpdateEffectiveAt(){return cdk().Token.asString(this.getAtt("UpdateEffectiveAt",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{destinationCidrBlock:this._destinationCidrBlock,destinationPortRange:this._destinationPortRange,destinationTransitGatewayAttachmentId:this._destinationTransitGatewayAttachmentId,destinationTransitGatewayAttachmentType:this._destinationTransitGatewayAttachmentType,meteredAccount:this._meteredAccount,policyRuleNumber:this._policyRuleNumber,protocol:this._protocol,sourceCidrBlock:this._sourceCidrBlock,sourcePortRange:this._sourcePortRange,sourceTransitGatewayAttachmentId:this._sourceTransitGatewayAttachmentId,sourceTransitGatewayAttachmentType:this._sourceTransitGatewayAttachmentType,transitGatewayMeteringPolicyId:this._transitGatewayMeteringPolicyId}}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",CfnTransitGatewayMeteringPolicyEntry.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayMeteringPolicyEntryPropsToCloudFormation(props)}}exports.CfnTransitGatewayMeteringPolicyEntry=CfnTransitGatewayMeteringPolicyEntry;function CfnTransitGatewayMeteringPolicyEntryPropsValidator(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("destinationCidrBlock",cdk().validateString)(properties.destinationCidrBlock)),errors.collect(cdk().propertyValidator("destinationPortRange",cdk().validateString)(properties.destinationPortRange)),errors.collect(cdk().propertyValidator("destinationTransitGatewayAttachmentId",cdk().validateString)(properties.destinationTransitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("destinationTransitGatewayAttachmentType",cdk().validateString)(properties.destinationTransitGatewayAttachmentType)),errors.collect(cdk().propertyValidator("meteredAccount",cdk().requiredValidator)(properties.meteredAccount)),errors.collect(cdk().propertyValidator("meteredAccount",cdk().validateString)(properties.meteredAccount)),errors.collect(cdk().propertyValidator("policyRuleNumber",cdk().requiredValidator)(properties.policyRuleNumber)),errors.collect(cdk().propertyValidator("policyRuleNumber",cdk().validateNumber)(properties.policyRuleNumber)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.collect(cdk().propertyValidator("sourceCidrBlock",cdk().validateString)(properties.sourceCidrBlock)),errors.collect(cdk().propertyValidator("sourcePortRange",cdk().validateString)(properties.sourcePortRange)),errors.collect(cdk().propertyValidator("sourceTransitGatewayAttachmentId",cdk().validateString)(properties.sourceTransitGatewayAttachmentId)),errors.collect(cdk().propertyValidator("sourceTransitGatewayAttachmentType",cdk().validateString)(properties.sourceTransitGatewayAttachmentType)),errors.collect(cdk().propertyValidator("transitGatewayMeteringPolicyId",cdk().requiredValidator)(properties.transitGatewayMeteringPolicyId)),errors.collect(cdk().propertyValidator("transitGatewayMeteringPolicyId",cdk().validateString)(properties.transitGatewayMeteringPolicyId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMeteringPolicyEntryProps"')}function convertCfnTransitGatewayMeteringPolicyEntryPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayMeteringPolicyEntryPropsValidator(properties).assertSuccess(),{DestinationCidrBlock:cdk().stringToCloudFormation(properties.destinationCidrBlock),DestinationPortRange:cdk().stringToCloudFormation(properties.destinationPortRange),DestinationTransitGatewayAttachmentId:cdk().stringToCloudFormation(properties.destinationTransitGatewayAttachmentId),DestinationTransitGatewayAttachmentType:cdk().stringToCloudFormation(properties.destinationTransitGatewayAttachmentType),MeteredAccount:cdk().stringToCloudFormation(properties.meteredAccount),PolicyRuleNumber:cdk().numberToCloudFormation(properties.policyRuleNumber),Protocol:cdk().stringToCloudFormation(properties.protocol),SourceCidrBlock:cdk().stringToCloudFormation(properties.sourceCidrBlock),SourcePortRange:cdk().stringToCloudFormation(properties.sourcePortRange),SourceTransitGatewayAttachmentId:cdk().stringToCloudFormation(properties.sourceTransitGatewayAttachmentId),SourceTransitGatewayAttachmentType:cdk().stringToCloudFormation(properties.sourceTransitGatewayAttachmentType),TransitGatewayMeteringPolicyId:cdk().stringToCloudFormation(properties.transitGatewayMeteringPolicyId)}):properties}function CfnTransitGatewayMeteringPolicyEntryPropsFromCloudFormation(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("destinationCidrBlock","DestinationCidrBlock",properties.DestinationCidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationCidrBlock):void 0),ret.addPropertyResult("destinationPortRange","DestinationPortRange",properties.DestinationPortRange!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationPortRange):void 0),ret.addPropertyResult("destinationTransitGatewayAttachmentId","DestinationTransitGatewayAttachmentId",properties.DestinationTransitGatewayAttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationTransitGatewayAttachmentId):void 0),ret.addPropertyResult("destinationTransitGatewayAttachmentType","DestinationTransitGatewayAttachmentType",properties.DestinationTransitGatewayAttachmentType!=null?cfn_parse().FromCloudFormation.getString(properties.DestinationTransitGatewayAttachmentType):void 0),ret.addPropertyResult("meteredAccount","MeteredAccount",properties.MeteredAccount!=null?cfn_parse().FromCloudFormation.getString(properties.MeteredAccount):void 0),ret.addPropertyResult("policyRuleNumber","PolicyRuleNumber",properties.PolicyRuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.PolicyRuleNumber):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse().FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("sourceCidrBlock","SourceCidrBlock",properties.SourceCidrBlock!=null?cfn_parse().FromCloudFormation.getString(properties.SourceCidrBlock):void 0),ret.addPropertyResult("sourcePortRange","SourcePortRange",properties.SourcePortRange!=null?cfn_parse().FromCloudFormation.getString(properties.SourcePortRange):void 0),ret.addPropertyResult("sourceTransitGatewayAttachmentId","SourceTransitGatewayAttachmentId",properties.SourceTransitGatewayAttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.SourceTransitGatewayAttachmentId):void 0),ret.addPropertyResult("sourceTransitGatewayAttachmentType","SourceTransitGatewayAttachmentType",properties.SourceTransitGatewayAttachmentType!=null?cfn_parse().FromCloudFormation.getString(properties.SourceTransitGatewayAttachmentType):void 0),ret.addPropertyResult("transitGatewayMeteringPolicyId","TransitGatewayMeteringPolicyId",properties.TransitGatewayMeteringPolicyId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayMeteringPolicyId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCBlockPublicAccessExclusion extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCBlockPublicAccessExclusion",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCBlockPublicAccessExclusion";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCBlockPublicAccessExclusionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPCBlockPublicAccessExclusion(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 isCfnVPCBlockPublicAccessExclusion(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPCBlockPublicAccessExclusion.CFN_RESOURCE_TYPE_NAME}cdkTagManager;_internetGatewayExclusionMode;_subnetId;_tags;_vpcId;cfnPropertyNames={tags:"Tags",internetGatewayExclusionMode:"InternetGatewayExclusionMode",subnetId:"SubnetId",vpcId:"VpcId"};constructor(scope,id,props){super(scope,id,{type:CfnVPCBlockPublicAccessExclusion.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCBlockPublicAccessExclusionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCBlockPublicAccessExclusion),error}cdk().requireProperty(props,"internetGatewayExclusionMode",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VPCBlockPublicAccessExclusion",void 0,{tagPropertyName:"tags"}),this._internetGatewayExclusionMode=props.internetGatewayExclusionMode,this._subnetId=props.subnetId,this._tags=props.tags,this._vpcId=props.vpcId}get vpcBlockPublicAccessExclusionRef(){return{exclusionId:this.ref}}get internetGatewayExclusionMode(){return this._internetGatewayExclusionMode}set internetGatewayExclusionMode(value){cdk().traceProperty(this.node,"InternetGatewayExclusionMode"),this._internetGatewayExclusionMode=value}get subnetId(){return this._subnetId}set subnetId(value){cdk().traceProperty(this.node,"SubnetId"),this._subnetId=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get attrExclusionId(){return cdk().Token.asString(this.getAtt("ExclusionId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),internetGatewayExclusionMode:this._internetGatewayExclusionMode,subnetId:this._subnetId,vpcId:this._vpcId}}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",CfnVPCBlockPublicAccessExclusion.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCBlockPublicAccessExclusionPropsToCloudFormation(props)}}exports.CfnVPCBlockPublicAccessExclusion=CfnVPCBlockPublicAccessExclusion;function CfnVPCBlockPublicAccessExclusionPropsValidator(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("internetGatewayExclusionMode",cdk().requiredValidator)(properties.internetGatewayExclusionMode)),errors.collect(cdk().propertyValidator("internetGatewayExclusionMode",cdk().validateString)(properties.internetGatewayExclusionMode)),errors.collect(cdk().propertyValidator("subnetId",cdk().validateString)(properties.subnetId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCBlockPublicAccessExclusionProps"')}function convertCfnVPCBlockPublicAccessExclusionPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCBlockPublicAccessExclusionPropsValidator(properties).assertSuccess(),{InternetGatewayExclusionMode:cdk().stringToCloudFormation(properties.internetGatewayExclusionMode),SubnetId:cdk().stringToCloudFormation(properties.subnetId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcId:cdk().stringToCloudFormation(properties.vpcId)}):properties}function CfnVPCBlockPublicAccessExclusionPropsFromCloudFormation(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("internetGatewayExclusionMode","InternetGatewayExclusionMode",properties.InternetGatewayExclusionMode!=null?cfn_parse().FromCloudFormation.getString(properties.InternetGatewayExclusionMode):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCBlockPublicAccessOptions extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCBlockPublicAccessOptions",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCBlockPublicAccessOptions";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCBlockPublicAccessOptionsPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPCBlockPublicAccessOptions(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 isCfnVPCBlockPublicAccessOptions(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPCBlockPublicAccessOptions.CFN_RESOURCE_TYPE_NAME}_internetGatewayBlockMode;cfnPropertyNames={internetGatewayBlockMode:"InternetGatewayBlockMode"};constructor(scope,id,props){super(scope,id,{type:CfnVPCBlockPublicAccessOptions.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCBlockPublicAccessOptionsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCBlockPublicAccessOptions),error}cdk().requireProperty(props,"internetGatewayBlockMode",this),this._internetGatewayBlockMode=props.internetGatewayBlockMode}get vpcBlockPublicAccessOptionsRef(){return{accountId:this.ref}}get internetGatewayBlockMode(){return this._internetGatewayBlockMode}set internetGatewayBlockMode(value){cdk().traceProperty(this.node,"InternetGatewayBlockMode"),this._internetGatewayBlockMode=value}get attrAccountId(){return cdk().Token.asString(this.getAtt("AccountId",cdk().ResolutionTypeHint.STRING))}get attrExclusionsAllowed(){return cdk().Token.asString(this.getAtt("ExclusionsAllowed",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{internetGatewayBlockMode:this._internetGatewayBlockMode}}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",CfnVPCBlockPublicAccessOptions.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCBlockPublicAccessOptionsPropsToCloudFormation(props)}}exports.CfnVPCBlockPublicAccessOptions=CfnVPCBlockPublicAccessOptions;function CfnVPCBlockPublicAccessOptionsPropsValidator(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("internetGatewayBlockMode",cdk().requiredValidator)(properties.internetGatewayBlockMode)),errors.collect(cdk().propertyValidator("internetGatewayBlockMode",cdk().validateString)(properties.internetGatewayBlockMode)),errors.wrap('supplied properties not correct for "CfnVPCBlockPublicAccessOptionsProps"')}function convertCfnVPCBlockPublicAccessOptionsPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCBlockPublicAccessOptionsPropsValidator(properties).assertSuccess(),{InternetGatewayBlockMode:cdk().stringToCloudFormation(properties.internetGatewayBlockMode)}):properties}function CfnVPCBlockPublicAccessOptionsPropsFromCloudFormation(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("internetGatewayBlockMode","InternetGatewayBlockMode",properties.InternetGatewayBlockMode!=null?cfn_parse().FromCloudFormation.getString(properties.InternetGatewayBlockMode):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEncryptionControl extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEncryptionControl",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEncryptionControl";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEncryptionControlPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPCEncryptionControl(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 isCfnVPCEncryptionControl(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPCEncryptionControl.CFN_RESOURCE_TYPE_NAME}static fromVpcEncryptionControlId(scope,id,vpcEncryptionControlId){class Import extends cdk().Resource{vpcEncryptionControlRef;constructor(scope2,id2,vpcEncryptionControlId2){super(scope2,id2),this.vpcEncryptionControlRef={vpcEncryptionControlId:vpcEncryptionControlId2}}}return new Import(scope,id,vpcEncryptionControlId)}static arnForVPCEncryptionControl(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVPCEncryptionControlRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVPCEncryptionControl),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:vpc-encryption-control/${VpcEncryptionControlId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,VpcEncryptionControlId:resource.vpcEncryptionControlRef.vpcEncryptionControlId})}cdkTagManager;_egressOnlyInternetGatewayExclusionInput;_elasticFileSystemExclusionInput;_internetGatewayExclusionInput;_lambdaExclusionInput;_mode;_natGatewayExclusionInput;_tags;_virtualPrivateGatewayExclusionInput;_vpcId;_vpcLatticeExclusionInput;_vpcPeeringExclusionInput;cfnPropertyNames={tags:"Tags",egressOnlyInternetGatewayExclusionInput:"EgressOnlyInternetGatewayExclusionInput",elasticFileSystemExclusionInput:"ElasticFileSystemExclusionInput",internetGatewayExclusionInput:"InternetGatewayExclusionInput",lambdaExclusionInput:"LambdaExclusionInput",mode:"Mode",natGatewayExclusionInput:"NatGatewayExclusionInput",virtualPrivateGatewayExclusionInput:"VirtualPrivateGatewayExclusionInput",vpcId:"VpcId",vpcLatticeExclusionInput:"VpcLatticeExclusionInput",vpcPeeringExclusionInput:"VpcPeeringExclusionInput"};constructor(scope,id,props={}){super(scope,id,{type:CfnVPCEncryptionControl.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPCEncryptionControlProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEncryptionControl),error}this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VPCEncryptionControl",void 0,{tagPropertyName:"tags"}),this._egressOnlyInternetGatewayExclusionInput=props.egressOnlyInternetGatewayExclusionInput,this._elasticFileSystemExclusionInput=props.elasticFileSystemExclusionInput,this._internetGatewayExclusionInput=props.internetGatewayExclusionInput,this._lambdaExclusionInput=props.lambdaExclusionInput,this._mode=props.mode,this._natGatewayExclusionInput=props.natGatewayExclusionInput,this._tags=props.tags,this._virtualPrivateGatewayExclusionInput=props.virtualPrivateGatewayExclusionInput,this._vpcId=props.vpcId,this._vpcLatticeExclusionInput=props.vpcLatticeExclusionInput,this._vpcPeeringExclusionInput=props.vpcPeeringExclusionInput}get vpcEncryptionControlRef(){return{vpcEncryptionControlId:this.ref}}get egressOnlyInternetGatewayExclusionInput(){return this._egressOnlyInternetGatewayExclusionInput}set egressOnlyInternetGatewayExclusionInput(value){cdk().traceProperty(this.node,"EgressOnlyInternetGatewayExclusionInput"),this._egressOnlyInternetGatewayExclusionInput=value}get elasticFileSystemExclusionInput(){return this._elasticFileSystemExclusionInput}set elasticFileSystemExclusionInput(value){cdk().traceProperty(this.node,"ElasticFileSystemExclusionInput"),this._elasticFileSystemExclusionInput=value}get internetGatewayExclusionInput(){return this._internetGatewayExclusionInput}set internetGatewayExclusionInput(value){cdk().traceProperty(this.node,"InternetGatewayExclusionInput"),this._internetGatewayExclusionInput=value}get lambdaExclusionInput(){return this._lambdaExclusionInput}set lambdaExclusionInput(value){cdk().traceProperty(this.node,"LambdaExclusionInput"),this._lambdaExclusionInput=value}get mode(){return this._mode}set mode(value){cdk().traceProperty(this.node,"Mode"),this._mode=value}get natGatewayExclusionInput(){return this._natGatewayExclusionInput}set natGatewayExclusionInput(value){cdk().traceProperty(this.node,"NatGatewayExclusionInput"),this._natGatewayExclusionInput=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get virtualPrivateGatewayExclusionInput(){return this._virtualPrivateGatewayExclusionInput}set virtualPrivateGatewayExclusionInput(value){cdk().traceProperty(this.node,"VirtualPrivateGatewayExclusionInput"),this._virtualPrivateGatewayExclusionInput=value}get vpcId(){return this._vpcId}set vpcId(value){cdk().traceProperty(this.node,"VpcId"),this._vpcId=value}get vpcLatticeExclusionInput(){return this._vpcLatticeExclusionInput}set vpcLatticeExclusionInput(value){cdk().traceProperty(this.node,"VpcLatticeExclusionInput"),this._vpcLatticeExclusionInput=value}get vpcPeeringExclusionInput(){return this._vpcPeeringExclusionInput}set vpcPeeringExclusionInput(value){cdk().traceProperty(this.node,"VpcPeeringExclusionInput"),this._vpcPeeringExclusionInput=value}get attrResourceExclusions(){return this.getAtt("ResourceExclusions")}get attrResourceExclusionsEgressOnlyInternetGateway(){return this.getAtt("ResourceExclusions.EgressOnlyInternetGateway")}get attrResourceExclusionsEgressOnlyInternetGatewayState(){return cdk().Token.asString(this.getAtt("ResourceExclusions.EgressOnlyInternetGateway.State",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsEgressOnlyInternetGatewayStateMessage(){return cdk().Token.asString(this.getAtt("ResourceExclusions.EgressOnlyInternetGateway.StateMessage",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsElasticFileSystem(){return this.getAtt("ResourceExclusions.ElasticFileSystem")}get attrResourceExclusionsElasticFileSystemState(){return cdk().Token.asString(this.getAtt("ResourceExclusions.ElasticFileSystem.State",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsElasticFileSystemStateMessage(){return cdk().Token.asString(this.getAtt("ResourceExclusions.ElasticFileSystem.StateMessage",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsInternetGateway(){return this.getAtt("ResourceExclusions.InternetGateway")}get attrResourceExclusionsInternetGatewayState(){return cdk().Token.asString(this.getAtt("ResourceExclusions.InternetGateway.State",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsInternetGatewayStateMessage(){return cdk().Token.asString(this.getAtt("ResourceExclusions.InternetGateway.StateMessage",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsLambda(){return this.getAtt("ResourceExclusions.Lambda")}get attrResourceExclusionsLambdaState(){return cdk().Token.asString(this.getAtt("ResourceExclusions.Lambda.State",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsLambdaStateMessage(){return cdk().Token.asString(this.getAtt("ResourceExclusions.Lambda.StateMessage",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsNatGateway(){return this.getAtt("ResourceExclusions.NatGateway")}get attrResourceExclusionsNatGatewayState(){return cdk().Token.asString(this.getAtt("ResourceExclusions.NatGateway.State",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsNatGatewayStateMessage(){return cdk().Token.asString(this.getAtt("ResourceExclusions.NatGateway.StateMessage",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsVirtualPrivateGateway(){return this.getAtt("ResourceExclusions.VirtualPrivateGateway")}get attrResourceExclusionsVirtualPrivateGatewayState(){return cdk().Token.asString(this.getAtt("ResourceExclusions.VirtualPrivateGateway.State",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsVirtualPrivateGatewayStateMessage(){return cdk().Token.asString(this.getAtt("ResourceExclusions.VirtualPrivateGateway.StateMessage",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsVpcLattice(){return this.getAtt("ResourceExclusions.VpcLattice")}get attrResourceExclusionsVpcLatticeState(){return cdk().Token.asString(this.getAtt("ResourceExclusions.VpcLattice.State",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsVpcLatticeStateMessage(){return cdk().Token.asString(this.getAtt("ResourceExclusions.VpcLattice.StateMessage",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsVpcPeering(){return this.getAtt("ResourceExclusions.VpcPeering")}get attrResourceExclusionsVpcPeeringState(){return cdk().Token.asString(this.getAtt("ResourceExclusions.VpcPeering.State",cdk().ResolutionTypeHint.STRING))}get attrResourceExclusionsVpcPeeringStateMessage(){return cdk().Token.asString(this.getAtt("ResourceExclusions.VpcPeering.StateMessage",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrStateMessage(){return cdk().Token.asString(this.getAtt("StateMessage",cdk().ResolutionTypeHint.STRING))}get attrVpcEncryptionControlId(){return cdk().Token.asString(this.getAtt("VpcEncryptionControlId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),egressOnlyInternetGatewayExclusionInput:this._egressOnlyInternetGatewayExclusionInput,elasticFileSystemExclusionInput:this._elasticFileSystemExclusionInput,internetGatewayExclusionInput:this._internetGatewayExclusionInput,lambdaExclusionInput:this._lambdaExclusionInput,mode:this._mode,natGatewayExclusionInput:this._natGatewayExclusionInput,virtualPrivateGatewayExclusionInput:this._virtualPrivateGatewayExclusionInput,vpcId:this._vpcId,vpcLatticeExclusionInput:this._vpcLatticeExclusionInput,vpcPeeringExclusionInput:this._vpcPeeringExclusionInput}}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",CfnVPCEncryptionControl.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPCEncryptionControlPropsToCloudFormation(props)}}exports.CfnVPCEncryptionControl=CfnVPCEncryptionControl;function CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyValidator(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("state",cdk().validateString)(properties.state)),errors.collect(cdk().propertyValidator("stateMessage",cdk().validateString)(properties.stateMessage)),errors.wrap('supplied properties not correct for "VpcEncryptionControlExclusionProperty"')}function convertCfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyValidator(properties).assertSuccess(),{State:cdk().stringToCloudFormation(properties.state),StateMessage:cdk().stringToCloudFormation(properties.stateMessage)}):properties}function CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyFromCloudFormation(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("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addPropertyResult("stateMessage","StateMessage",properties.StateMessage!=null?cfn_parse().FromCloudFormation.getString(properties.StateMessage):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPCEncryptionControlResourceExclusionsPropertyValidator(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("egressOnlyInternetGateway",CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyValidator)(properties.egressOnlyInternetGateway)),errors.collect(cdk().propertyValidator("elasticFileSystem",CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyValidator)(properties.elasticFileSystem)),errors.collect(cdk().propertyValidator("internetGateway",CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyValidator)(properties.internetGateway)),errors.collect(cdk().propertyValidator("lambda",CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyValidator)(properties.lambda)),errors.collect(cdk().propertyValidator("natGateway",CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyValidator)(properties.natGateway)),errors.collect(cdk().propertyValidator("virtualPrivateGateway",CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyValidator)(properties.virtualPrivateGateway)),errors.collect(cdk().propertyValidator("vpcLattice",CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyValidator)(properties.vpcLattice)),errors.collect(cdk().propertyValidator("vpcPeering",CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyValidator)(properties.vpcPeering)),errors.wrap('supplied properties not correct for "ResourceExclusionsProperty"')}function convertCfnVPCEncryptionControlResourceExclusionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCEncryptionControlResourceExclusionsPropertyValidator(properties).assertSuccess(),{EgressOnlyInternetGateway:convertCfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyToCloudFormation(properties.egressOnlyInternetGateway),ElasticFileSystem:convertCfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyToCloudFormation(properties.elasticFileSystem),InternetGateway:convertCfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyToCloudFormation(properties.internetGateway),Lambda:convertCfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyToCloudFormation(properties.lambda),NatGateway:convertCfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyToCloudFormation(properties.natGateway),VirtualPrivateGateway:convertCfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyToCloudFormation(properties.virtualPrivateGateway),VpcLattice:convertCfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyToCloudFormation(properties.vpcLattice),VpcPeering:convertCfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyToCloudFormation(properties.vpcPeering)}):properties}function CfnVPCEncryptionControlResourceExclusionsPropertyFromCloudFormation(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("egressOnlyInternetGateway","EgressOnlyInternetGateway",properties.EgressOnlyInternetGateway!=null?CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyFromCloudFormation(properties.EgressOnlyInternetGateway):void 0),ret.addPropertyResult("elasticFileSystem","ElasticFileSystem",properties.ElasticFileSystem!=null?CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyFromCloudFormation(properties.ElasticFileSystem):void 0),ret.addPropertyResult("internetGateway","InternetGateway",properties.InternetGateway!=null?CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyFromCloudFormation(properties.InternetGateway):void 0),ret.addPropertyResult("lambda","Lambda",properties.Lambda!=null?CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyFromCloudFormation(properties.Lambda):void 0),ret.addPropertyResult("natGateway","NatGateway",properties.NatGateway!=null?CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyFromCloudFormation(properties.NatGateway):void 0),ret.addPropertyResult("virtualPrivateGateway","VirtualPrivateGateway",properties.VirtualPrivateGateway!=null?CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyFromCloudFormation(properties.VirtualPrivateGateway):void 0),ret.addPropertyResult("vpcLattice","VpcLattice",properties.VpcLattice!=null?CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyFromCloudFormation(properties.VpcLattice):void 0),ret.addPropertyResult("vpcPeering","VpcPeering",properties.VpcPeering!=null?CfnVPCEncryptionControlVpcEncryptionControlExclusionPropertyFromCloudFormation(properties.VpcPeering):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPCEncryptionControlPropsValidator(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("egressOnlyInternetGatewayExclusionInput",cdk().validateString)(properties.egressOnlyInternetGatewayExclusionInput)),errors.collect(cdk().propertyValidator("elasticFileSystemExclusionInput",cdk().validateString)(properties.elasticFileSystemExclusionInput)),errors.collect(cdk().propertyValidator("internetGatewayExclusionInput",cdk().validateString)(properties.internetGatewayExclusionInput)),errors.collect(cdk().propertyValidator("lambdaExclusionInput",cdk().validateString)(properties.lambdaExclusionInput)),errors.collect(cdk().propertyValidator("mode",cdk().validateString)(properties.mode)),errors.collect(cdk().propertyValidator("natGatewayExclusionInput",cdk().validateString)(properties.natGatewayExclusionInput)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("virtualPrivateGatewayExclusionInput",cdk().validateString)(properties.virtualPrivateGatewayExclusionInput)),errors.collect(cdk().propertyValidator("vpcId",cdk().validateString)(properties.vpcId)),errors.collect(cdk().propertyValidator("vpcLatticeExclusionInput",cdk().validateString)(properties.vpcLatticeExclusionInput)),errors.collect(cdk().propertyValidator("vpcPeeringExclusionInput",cdk().validateString)(properties.vpcPeeringExclusionInput)),errors.wrap('supplied properties not correct for "CfnVPCEncryptionControlProps"')}function convertCfnVPCEncryptionControlPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPCEncryptionControlPropsValidator(properties).assertSuccess(),{EgressOnlyInternetGatewayExclusionInput:cdk().stringToCloudFormation(properties.egressOnlyInternetGatewayExclusionInput),ElasticFileSystemExclusionInput:cdk().stringToCloudFormation(properties.elasticFileSystemExclusionInput),InternetGatewayExclusionInput:cdk().stringToCloudFormation(properties.internetGatewayExclusionInput),LambdaExclusionInput:cdk().stringToCloudFormation(properties.lambdaExclusionInput),Mode:cdk().stringToCloudFormation(properties.mode),NatGatewayExclusionInput:cdk().stringToCloudFormation(properties.natGatewayExclusionInput),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VirtualPrivateGatewayExclusionInput:cdk().stringToCloudFormation(properties.virtualPrivateGatewayExclusionInput),VpcId:cdk().stringToCloudFormation(properties.vpcId),VpcLatticeExclusionInput:cdk().stringToCloudFormation(properties.vpcLatticeExclusionInput),VpcPeeringExclusionInput:cdk().stringToCloudFormation(properties.vpcPeeringExclusionInput)}):properties}function CfnVPCEncryptionControlPropsFromCloudFormation(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("egressOnlyInternetGatewayExclusionInput","EgressOnlyInternetGatewayExclusionInput",properties.EgressOnlyInternetGatewayExclusionInput!=null?cfn_parse().FromCloudFormation.getString(properties.EgressOnlyInternetGatewayExclusionInput):void 0),ret.addPropertyResult("elasticFileSystemExclusionInput","ElasticFileSystemExclusionInput",properties.ElasticFileSystemExclusionInput!=null?cfn_parse().FromCloudFormation.getString(properties.ElasticFileSystemExclusionInput):void 0),ret.addPropertyResult("internetGatewayExclusionInput","InternetGatewayExclusionInput",properties.InternetGatewayExclusionInput!=null?cfn_parse().FromCloudFormation.getString(properties.InternetGatewayExclusionInput):void 0),ret.addPropertyResult("lambdaExclusionInput","LambdaExclusionInput",properties.LambdaExclusionInput!=null?cfn_parse().FromCloudFormation.getString(properties.LambdaExclusionInput):void 0),ret.addPropertyResult("mode","Mode",properties.Mode!=null?cfn_parse().FromCloudFormation.getString(properties.Mode):void 0),ret.addPropertyResult("natGatewayExclusionInput","NatGatewayExclusionInput",properties.NatGatewayExclusionInput!=null?cfn_parse().FromCloudFormation.getString(properties.NatGatewayExclusionInput):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("virtualPrivateGatewayExclusionInput","VirtualPrivateGatewayExclusionInput",properties.VirtualPrivateGatewayExclusionInput!=null?cfn_parse().FromCloudFormation.getString(properties.VirtualPrivateGatewayExclusionInput):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse().FromCloudFormation.getString(properties.VpcId):void 0),ret.addPropertyResult("vpcLatticeExclusionInput","VpcLatticeExclusionInput",properties.VpcLatticeExclusionInput!=null?cfn_parse().FromCloudFormation.getString(properties.VpcLatticeExclusionInput):void 0),ret.addPropertyResult("vpcPeeringExclusionInput","VpcPeeringExclusionInput",properties.VpcPeeringExclusionInput!=null?cfn_parse().FromCloudFormation.getString(properties.VpcPeeringExclusionInput):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPNConcentrator extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNConcentrator",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNConcentrator";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNConcentratorPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVPNConcentrator(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 isCfnVPNConcentrator(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVPNConcentrator.CFN_RESOURCE_TYPE_NAME}static fromVpnConcentratorId(scope,id,vpnConcentratorId){class Import extends cdk().Resource{vpnConcentratorRef;constructor(scope2,id2,vpnConcentratorId2){super(scope2,id2),this.vpnConcentratorRef={vpnConcentratorId:vpnConcentratorId2}}}return new Import(scope,id,vpnConcentratorId)}static arnForVPNConcentrator(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_ec2_IVPNConcentratorRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVPNConcentrator),error}return new(cfn_parse()).TemplateString("arn:${Partition}:ec2:${Region}:${Account}:vpn-concentrator/${VpnConcentratorId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,VpnConcentratorId:resource.vpnConcentratorRef.vpnConcentratorId})}cdkTagManager;_tags;_transitGatewayId;_type;cfnPropertyNames={tags:"Tags",transitGatewayId:"TransitGatewayId",type:"Type"};constructor(scope,id,props){super(scope,id,{type:CfnVPNConcentrator.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_CfnVPNConcentratorProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNConcentrator),error}cdk().requireProperty(props,"transitGatewayId",this),cdk().requireProperty(props,"type",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::EC2::VPNConcentrator",void 0,{tagPropertyName:"tags"}),this._tags=props.tags,this._transitGatewayId=props.transitGatewayId,this._type=props.type}get vpnConcentratorRef(){return{vpnConcentratorId:this.ref}}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get transitGatewayId(){return this._transitGatewayId}set transitGatewayId(value){cdk().traceProperty(this.node,"TransitGatewayId"),this._transitGatewayId=value}get type(){return this._type}set type(value){cdk().traceProperty(this.node,"Type"),this._type=value}get attrTransitGatewayAttachmentId(){return cdk().Token.asString(this.getAtt("TransitGatewayAttachmentId",cdk().ResolutionTypeHint.STRING))}get attrVpnConcentratorId(){return cdk().Token.asString(this.getAtt("VpnConcentratorId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),transitGatewayId:this._transitGatewayId,type:this._type}}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",CfnVPNConcentrator.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVPNConcentratorPropsToCloudFormation(props)}}exports.CfnVPNConcentrator=CfnVPNConcentrator;function CfnVPNConcentratorPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().requiredValidator)(properties.transitGatewayId)),errors.collect(cdk().propertyValidator("transitGatewayId",cdk().validateString)(properties.transitGatewayId)),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 "CfnVPNConcentratorProps"')}function convertCfnVPNConcentratorPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVPNConcentratorPropsValidator(properties).assertSuccess(),{Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayId:cdk().stringToCloudFormation(properties.transitGatewayId),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnVPNConcentratorPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}