"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnDirectConnectGatewayAttachment=exports.CfnCoreNetworkPrefixListAssociation=exports.CfnVpcAttachment=exports.CfnTransitGatewayRouteTableAttachment=exports.CfnTransitGatewayRegistration=exports.CfnTransitGatewayPeering=exports.CfnSiteToSiteVpnAttachment=exports.CfnSite=exports.CfnLinkAssociation=exports.CfnLink=exports.CfnGlobalNetwork=exports.CfnDevice=exports.CfnCustomerGatewayAssociation=exports.CfnCoreNetwork=exports.CfnConnectPeer=exports.CfnConnectAttachment=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 CfnConnectAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnConnectAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::ConnectAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnConnectAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnConnectAttachment(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 isCfnConnectAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnConnectAttachment.CFN_RESOURCE_TYPE_NAME}static fromAttachmentId(scope,id,attachmentId){class Import extends cdk().Resource{connectAttachmentRef;constructor(scope2,id2,attachmentId2){super(scope2,id2),this.connectAttachmentRef={attachmentId:attachmentId2}}}return new Import(scope,id,attachmentId)}static arnForConnectAttachment(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkmanager_IConnectAttachmentRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForConnectAttachment),error}return new(cfn_parse()).TemplateString("arn:${Partition}:networkmanager::${Account}:attachment/${AttachmentId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,AttachmentId:resource.connectAttachmentRef.attachmentId})}_coreNetworkId;_edgeLocation;_networkFunctionGroupName;_options;_proposedNetworkFunctionGroupChange;_proposedSegmentChange;_routingPolicyLabel;tags;_tagsRaw;_transportAttachmentId;cfnPropertyNames={coreNetworkId:"CoreNetworkId",edgeLocation:"EdgeLocation",networkFunctionGroupName:"NetworkFunctionGroupName",options:"Options",proposedNetworkFunctionGroupChange:"ProposedNetworkFunctionGroupChange",proposedSegmentChange:"ProposedSegmentChange",routingPolicyLabel:"RoutingPolicyLabel",tags:"Tags",transportAttachmentId:"TransportAttachmentId"};constructor(scope,id,props){super(scope,id,{type:CfnConnectAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnConnectAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnConnectAttachment),error}cdk().requireProperty(props,"coreNetworkId",this),cdk().requireProperty(props,"edgeLocation",this),cdk().requireProperty(props,"options",this),cdk().requireProperty(props,"transportAttachmentId",this),this._coreNetworkId=props.coreNetworkId,this._edgeLocation=props.edgeLocation,this._networkFunctionGroupName=props.networkFunctionGroupName,this._options=props.options,this._proposedNetworkFunctionGroupChange=props.proposedNetworkFunctionGroupChange,this._proposedSegmentChange=props.proposedSegmentChange,this._routingPolicyLabel=props.routingPolicyLabel,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::ConnectAttachment",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transportAttachmentId=props.transportAttachmentId}get connectAttachmentRef(){return{attachmentId:this.ref}}get coreNetworkId(){return this._coreNetworkId}set coreNetworkId(value){cdk().traceProperty(this.node,"CoreNetworkId"),this._coreNetworkId=value}get edgeLocation(){return this._edgeLocation}set edgeLocation(value){cdk().traceProperty(this.node,"EdgeLocation"),this._edgeLocation=value}get networkFunctionGroupName(){return this._networkFunctionGroupName}set networkFunctionGroupName(value){cdk().traceProperty(this.node,"NetworkFunctionGroupName"),this._networkFunctionGroupName=value}get options(){return this._options}set options(value){cdk().traceProperty(this.node,"Options"),this._options=value}get proposedNetworkFunctionGroupChange(){return this._proposedNetworkFunctionGroupChange}set proposedNetworkFunctionGroupChange(value){cdk().traceProperty(this.node,"ProposedNetworkFunctionGroupChange"),this._proposedNetworkFunctionGroupChange=value}get proposedSegmentChange(){return this._proposedSegmentChange}set proposedSegmentChange(value){cdk().traceProperty(this.node,"ProposedSegmentChange"),this._proposedSegmentChange=value}get routingPolicyLabel(){return this._routingPolicyLabel}set routingPolicyLabel(value){cdk().traceProperty(this.node,"RoutingPolicyLabel"),this._routingPolicyLabel=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transportAttachmentId(){return this._transportAttachmentId}set transportAttachmentId(value){cdk().traceProperty(this.node,"TransportAttachmentId"),this._transportAttachmentId=value}get attrAttachmentId(){return cdk().Token.asString(this.getAtt("AttachmentId",cdk().ResolutionTypeHint.STRING))}get attrAttachmentPolicyRuleNumber(){return cdk().Token.asNumber(this.getAtt("AttachmentPolicyRuleNumber",cdk().ResolutionTypeHint.NUMBER))}get attrAttachmentType(){return cdk().Token.asString(this.getAtt("AttachmentType",cdk().ResolutionTypeHint.STRING))}get attrCoreNetworkArn(){return cdk().Token.asString(this.getAtt("CoreNetworkArn",cdk().ResolutionTypeHint.STRING))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrLastModificationErrors(){return cdk().Token.asList(this.getAtt("LastModificationErrors",cdk().ResolutionTypeHint.STRING_LIST))}get attrOwnerAccountId(){return cdk().Token.asString(this.getAtt("OwnerAccountId",cdk().ResolutionTypeHint.STRING))}get attrResourceArn(){return cdk().Token.asString(this.getAtt("ResourceArn",cdk().ResolutionTypeHint.STRING))}get attrSegmentName(){return cdk().Token.asString(this.getAtt("SegmentName",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrUpdatedAt(){return cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{coreNetworkId:this._coreNetworkId,edgeLocation:this._edgeLocation,networkFunctionGroupName:this._networkFunctionGroupName,options:this._options,proposedNetworkFunctionGroupChange:this._proposedNetworkFunctionGroupChange,proposedSegmentChange:this._proposedSegmentChange,routingPolicyLabel:this._routingPolicyLabel,tags:this.tags.renderTags(),transportAttachmentId:this._transportAttachmentId}}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",CfnConnectAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnConnectAttachmentPropsToCloudFormation(props)}}exports.CfnConnectAttachment=CfnConnectAttachment;function CfnConnectAttachmentProposedSegmentChangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachmentPolicyRuleNumber",cdk().validateNumber)(properties.attachmentPolicyRuleNumber)),errors.collect(cdk().propertyValidator("segmentName",cdk().validateString)(properties.segmentName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ProposedSegmentChangeProperty"')}function convertCfnConnectAttachmentProposedSegmentChangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectAttachmentProposedSegmentChangePropertyValidator(properties).assertSuccess(),{AttachmentPolicyRuleNumber:cdk().numberToCloudFormation(properties.attachmentPolicyRuleNumber),SegmentName:cdk().stringToCloudFormation(properties.segmentName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnConnectAttachmentProposedSegmentChangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentPolicyRuleNumber","AttachmentPolicyRuleNumber",properties.AttachmentPolicyRuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.AttachmentPolicyRuleNumber):void 0),ret.addPropertyResult("segmentName","SegmentName",properties.SegmentName!=null?cfn_parse().FromCloudFormation.getString(properties.SegmentName):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 CfnConnectAttachmentConnectAttachmentOptionsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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 "ConnectAttachmentOptionsProperty"')}function convertCfnConnectAttachmentConnectAttachmentOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectAttachmentConnectAttachmentOptionsPropertyValidator(properties).assertSuccess(),{Protocol:cdk().stringToCloudFormation(properties.protocol)}):properties}function CfnConnectAttachmentConnectAttachmentOptionsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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 CfnConnectAttachmentProposedNetworkFunctionGroupChangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachmentPolicyRuleNumber",cdk().validateNumber)(properties.attachmentPolicyRuleNumber)),errors.collect(cdk().propertyValidator("networkFunctionGroupName",cdk().validateString)(properties.networkFunctionGroupName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ProposedNetworkFunctionGroupChangeProperty"')}function convertCfnConnectAttachmentProposedNetworkFunctionGroupChangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectAttachmentProposedNetworkFunctionGroupChangePropertyValidator(properties).assertSuccess(),{AttachmentPolicyRuleNumber:cdk().numberToCloudFormation(properties.attachmentPolicyRuleNumber),NetworkFunctionGroupName:cdk().stringToCloudFormation(properties.networkFunctionGroupName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnConnectAttachmentProposedNetworkFunctionGroupChangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentPolicyRuleNumber","AttachmentPolicyRuleNumber",properties.AttachmentPolicyRuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.AttachmentPolicyRuleNumber):void 0),ret.addPropertyResult("networkFunctionGroupName","NetworkFunctionGroupName",properties.NetworkFunctionGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkFunctionGroupName):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 CfnConnectAttachmentPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().requiredValidator)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().validateString)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("edgeLocation",cdk().requiredValidator)(properties.edgeLocation)),errors.collect(cdk().propertyValidator("edgeLocation",cdk().validateString)(properties.edgeLocation)),errors.collect(cdk().propertyValidator("networkFunctionGroupName",cdk().validateString)(properties.networkFunctionGroupName)),errors.collect(cdk().propertyValidator("options",cdk().requiredValidator)(properties.options)),errors.collect(cdk().propertyValidator("options",CfnConnectAttachmentConnectAttachmentOptionsPropertyValidator)(properties.options)),errors.collect(cdk().propertyValidator("proposedNetworkFunctionGroupChange",CfnConnectAttachmentProposedNetworkFunctionGroupChangePropertyValidator)(properties.proposedNetworkFunctionGroupChange)),errors.collect(cdk().propertyValidator("proposedSegmentChange",CfnConnectAttachmentProposedSegmentChangePropertyValidator)(properties.proposedSegmentChange)),errors.collect(cdk().propertyValidator("routingPolicyLabel",cdk().validateString)(properties.routingPolicyLabel)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transportAttachmentId",cdk().requiredValidator)(properties.transportAttachmentId)),errors.collect(cdk().propertyValidator("transportAttachmentId",cdk().validateString)(properties.transportAttachmentId)),errors.wrap('supplied properties not correct for "CfnConnectAttachmentProps"')}function convertCfnConnectAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectAttachmentPropsValidator(properties).assertSuccess(),{CoreNetworkId:cdk().stringToCloudFormation(properties.coreNetworkId),EdgeLocation:cdk().stringToCloudFormation(properties.edgeLocation),NetworkFunctionGroupName:cdk().stringToCloudFormation(properties.networkFunctionGroupName),Options:convertCfnConnectAttachmentConnectAttachmentOptionsPropertyToCloudFormation(properties.options),ProposedNetworkFunctionGroupChange:convertCfnConnectAttachmentProposedNetworkFunctionGroupChangePropertyToCloudFormation(properties.proposedNetworkFunctionGroupChange),ProposedSegmentChange:convertCfnConnectAttachmentProposedSegmentChangePropertyToCloudFormation(properties.proposedSegmentChange),RoutingPolicyLabel:cdk().stringToCloudFormation(properties.routingPolicyLabel),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransportAttachmentId:cdk().stringToCloudFormation(properties.transportAttachmentId)}):properties}function CfnConnectAttachmentPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("coreNetworkId","CoreNetworkId",properties.CoreNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.CoreNetworkId):void 0),ret.addPropertyResult("edgeLocation","EdgeLocation",properties.EdgeLocation!=null?cfn_parse().FromCloudFormation.getString(properties.EdgeLocation):void 0),ret.addPropertyResult("networkFunctionGroupName","NetworkFunctionGroupName",properties.NetworkFunctionGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkFunctionGroupName):void 0),ret.addPropertyResult("options","Options",properties.Options!=null?CfnConnectAttachmentConnectAttachmentOptionsPropertyFromCloudFormation(properties.Options):void 0),ret.addPropertyResult("proposedNetworkFunctionGroupChange","ProposedNetworkFunctionGroupChange",properties.ProposedNetworkFunctionGroupChange!=null?CfnConnectAttachmentProposedNetworkFunctionGroupChangePropertyFromCloudFormation(properties.ProposedNetworkFunctionGroupChange):void 0),ret.addPropertyResult("proposedSegmentChange","ProposedSegmentChange",properties.ProposedSegmentChange!=null?CfnConnectAttachmentProposedSegmentChangePropertyFromCloudFormation(properties.ProposedSegmentChange):void 0),ret.addPropertyResult("routingPolicyLabel","RoutingPolicyLabel",properties.RoutingPolicyLabel!=null?cfn_parse().FromCloudFormation.getString(properties.RoutingPolicyLabel):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transportAttachmentId","TransportAttachmentId",properties.TransportAttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.TransportAttachmentId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnConnectPeer extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnConnectPeer",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::ConnectPeer";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnConnectPeerPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnConnectPeer(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 isCfnConnectPeer(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnConnectPeer.CFN_RESOURCE_TYPE_NAME}static fromConnectPeerId(scope,id,connectPeerId){class Import extends cdk().Resource{connectPeerRef;constructor(scope2,id2,connectPeerId2){super(scope2,id2),this.connectPeerRef={connectPeerId:connectPeerId2}}}return new Import(scope,id,connectPeerId)}static arnForConnectPeer(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkmanager_IConnectPeerRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForConnectPeer),error}return new(cfn_parse()).TemplateString("arn:${Partition}:networkmanager::${Account}:connect-peer/${ConnectPeerId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,ConnectPeerId:resource.connectPeerRef.connectPeerId})}_bgpOptions;_connectAttachmentId;_coreNetworkAddress;_insideCidrBlocks;_peerAddress;_subnetArn;tags;_tagsRaw;cfnPropertyNames={bgpOptions:"BgpOptions",connectAttachmentId:"ConnectAttachmentId",coreNetworkAddress:"CoreNetworkAddress",insideCidrBlocks:"InsideCidrBlocks",peerAddress:"PeerAddress",subnetArn:"SubnetArn",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnConnectPeer.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnConnectPeerProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnConnectPeer),error}cdk().requireProperty(props,"connectAttachmentId",this),cdk().requireProperty(props,"peerAddress",this),this._bgpOptions=props.bgpOptions,this._connectAttachmentId=props.connectAttachmentId,this._coreNetworkAddress=props.coreNetworkAddress,this._insideCidrBlocks=props.insideCidrBlocks,this._peerAddress=props.peerAddress,this._subnetArn=props.subnetArn,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::ConnectPeer",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get connectPeerRef(){return{connectPeerId:this.ref}}get bgpOptions(){return this._bgpOptions}set bgpOptions(value){cdk().traceProperty(this.node,"BgpOptions"),this._bgpOptions=value}get connectAttachmentId(){return this._connectAttachmentId}set connectAttachmentId(value){cdk().traceProperty(this.node,"ConnectAttachmentId"),this._connectAttachmentId=value}get coreNetworkAddress(){return this._coreNetworkAddress}set coreNetworkAddress(value){cdk().traceProperty(this.node,"CoreNetworkAddress"),this._coreNetworkAddress=value}get insideCidrBlocks(){return this._insideCidrBlocks}set insideCidrBlocks(value){cdk().traceProperty(this.node,"InsideCidrBlocks"),this._insideCidrBlocks=value}get peerAddress(){return this._peerAddress}set peerAddress(value){cdk().traceProperty(this.node,"PeerAddress"),this._peerAddress=value}get subnetArn(){return this._subnetArn}set subnetArn(value){cdk().traceProperty(this.node,"SubnetArn"),this._subnetArn=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrConfiguration(){return this.getAtt("Configuration")}get attrConfigurationBgpConfigurations(){return this.getAtt("Configuration.BgpConfigurations")}get attrConfigurationCoreNetworkAddress(){return cdk().Token.asString(this.getAtt("Configuration.CoreNetworkAddress",cdk().ResolutionTypeHint.STRING))}get attrConfigurationInsideCidrBlocks(){return cdk().Token.asList(this.getAtt("Configuration.InsideCidrBlocks",cdk().ResolutionTypeHint.STRING_LIST))}get attrConfigurationPeerAddress(){return cdk().Token.asString(this.getAtt("Configuration.PeerAddress",cdk().ResolutionTypeHint.STRING))}get attrConfigurationProtocol(){return cdk().Token.asString(this.getAtt("Configuration.Protocol",cdk().ResolutionTypeHint.STRING))}get attrConnectPeerId(){return cdk().Token.asString(this.getAtt("ConnectPeerId",cdk().ResolutionTypeHint.STRING))}get attrCoreNetworkId(){return cdk().Token.asString(this.getAtt("CoreNetworkId",cdk().ResolutionTypeHint.STRING))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrEdgeLocation(){return cdk().Token.asString(this.getAtt("EdgeLocation",cdk().ResolutionTypeHint.STRING))}get attrLastModificationErrors(){return cdk().Token.asList(this.getAtt("LastModificationErrors",cdk().ResolutionTypeHint.STRING_LIST))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{bgpOptions:this._bgpOptions,connectAttachmentId:this._connectAttachmentId,coreNetworkAddress:this._coreNetworkAddress,insideCidrBlocks:this._insideCidrBlocks,peerAddress:this._peerAddress,subnetArn:this._subnetArn,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",CfnConnectPeer.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnConnectPeerPropsToCloudFormation(props)}}exports.CfnConnectPeer=CfnConnectPeer;function CfnConnectPeerBgpOptionsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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.wrap('supplied properties not correct for "BgpOptionsProperty"')}function convertCfnConnectPeerBgpOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectPeerBgpOptionsPropertyValidator(properties).assertSuccess(),{PeerAsn:cdk().numberToCloudFormation(properties.peerAsn)}):properties}function CfnConnectPeerBgpOptionsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnConnectPeerConnectPeerBgpConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("coreNetworkAddress",cdk().validateString)(properties.coreNetworkAddress)),errors.collect(cdk().propertyValidator("coreNetworkAsn",cdk().validateNumber)(properties.coreNetworkAsn)),errors.collect(cdk().propertyValidator("peerAddress",cdk().validateString)(properties.peerAddress)),errors.collect(cdk().propertyValidator("peerAsn",cdk().validateNumber)(properties.peerAsn)),errors.wrap('supplied properties not correct for "ConnectPeerBgpConfigurationProperty"')}function convertCfnConnectPeerConnectPeerBgpConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectPeerConnectPeerBgpConfigurationPropertyValidator(properties).assertSuccess(),{CoreNetworkAddress:cdk().stringToCloudFormation(properties.coreNetworkAddress),CoreNetworkAsn:cdk().numberToCloudFormation(properties.coreNetworkAsn),PeerAddress:cdk().stringToCloudFormation(properties.peerAddress),PeerAsn:cdk().numberToCloudFormation(properties.peerAsn)}):properties}function CfnConnectPeerConnectPeerBgpConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("coreNetworkAddress","CoreNetworkAddress",properties.CoreNetworkAddress!=null?cfn_parse().FromCloudFormation.getString(properties.CoreNetworkAddress):void 0),ret.addPropertyResult("coreNetworkAsn","CoreNetworkAsn",properties.CoreNetworkAsn!=null?cfn_parse().FromCloudFormation.getNumber(properties.CoreNetworkAsn):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.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnConnectPeerConnectPeerConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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(CfnConnectPeerConnectPeerBgpConfigurationPropertyValidator))(properties.bgpConfigurations)),errors.collect(cdk().propertyValidator("coreNetworkAddress",cdk().validateString)(properties.coreNetworkAddress)),errors.collect(cdk().propertyValidator("insideCidrBlocks",cdk().listValidator(cdk().validateString))(properties.insideCidrBlocks)),errors.collect(cdk().propertyValidator("peerAddress",cdk().validateString)(properties.peerAddress)),errors.collect(cdk().propertyValidator("protocol",cdk().validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "ConnectPeerConfigurationProperty"')}function convertCfnConnectPeerConnectPeerConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectPeerConnectPeerConfigurationPropertyValidator(properties).assertSuccess(),{BgpConfigurations:cdk().listMapper(convertCfnConnectPeerConnectPeerBgpConfigurationPropertyToCloudFormation)(properties.bgpConfigurations),CoreNetworkAddress:cdk().stringToCloudFormation(properties.coreNetworkAddress),InsideCidrBlocks:cdk().listMapper(cdk().stringToCloudFormation)(properties.insideCidrBlocks),PeerAddress:cdk().stringToCloudFormation(properties.peerAddress),Protocol:cdk().stringToCloudFormation(properties.protocol)}):properties}function CfnConnectPeerConnectPeerConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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(CfnConnectPeerConnectPeerBgpConfigurationPropertyFromCloudFormation)(properties.BgpConfigurations):void 0),ret.addPropertyResult("coreNetworkAddress","CoreNetworkAddress",properties.CoreNetworkAddress!=null?cfn_parse().FromCloudFormation.getString(properties.CoreNetworkAddress):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.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnConnectPeerPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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",CfnConnectPeerBgpOptionsPropertyValidator)(properties.bgpOptions)),errors.collect(cdk().propertyValidator("connectAttachmentId",cdk().requiredValidator)(properties.connectAttachmentId)),errors.collect(cdk().propertyValidator("connectAttachmentId",cdk().validateString)(properties.connectAttachmentId)),errors.collect(cdk().propertyValidator("coreNetworkAddress",cdk().validateString)(properties.coreNetworkAddress)),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("subnetArn",cdk().validateString)(properties.subnetArn)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnConnectPeerProps"')}function convertCfnConnectPeerPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnConnectPeerPropsValidator(properties).assertSuccess(),{BgpOptions:convertCfnConnectPeerBgpOptionsPropertyToCloudFormation(properties.bgpOptions),ConnectAttachmentId:cdk().stringToCloudFormation(properties.connectAttachmentId),CoreNetworkAddress:cdk().stringToCloudFormation(properties.coreNetworkAddress),InsideCidrBlocks:cdk().listMapper(cdk().stringToCloudFormation)(properties.insideCidrBlocks),PeerAddress:cdk().stringToCloudFormation(properties.peerAddress),SubnetArn:cdk().stringToCloudFormation(properties.subnetArn),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnConnectPeerPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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?CfnConnectPeerBgpOptionsPropertyFromCloudFormation(properties.BgpOptions):void 0),ret.addPropertyResult("connectAttachmentId","ConnectAttachmentId",properties.ConnectAttachmentId!=null?cfn_parse().FromCloudFormation.getString(properties.ConnectAttachmentId):void 0),ret.addPropertyResult("coreNetworkAddress","CoreNetworkAddress",properties.CoreNetworkAddress!=null?cfn_parse().FromCloudFormation.getString(properties.CoreNetworkAddress):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("subnetArn","SubnetArn",properties.SubnetArn!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetArn):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 CfnCoreNetwork extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnCoreNetwork",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::CoreNetwork";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCoreNetworkPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCoreNetwork(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 isCfnCoreNetwork(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCoreNetwork.CFN_RESOURCE_TYPE_NAME}static fromCoreNetworkArn(scope,id,arn){class Import extends cdk().Resource{coreNetworkRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:networkmanager::${Account}:core-network/${CoreNetworkId}").parse(arn2);this.coreNetworkRef={coreNetworkId:variables.CoreNetworkId,coreNetworkArn:arn2}}}return new Import(scope,id,arn)}static fromCoreNetworkId(scope,id,coreNetworkId){class Import extends cdk().Resource{coreNetworkRef;constructor(scope2,id2,coreNetworkId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:networkmanager::${Account}:core-network/${CoreNetworkId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,CoreNetworkId:coreNetworkId2});super(scope2,id2,{environmentFromArn:arn}),this.coreNetworkRef={coreNetworkId:coreNetworkId2,coreNetworkArn:arn}}}return new Import(scope,id,coreNetworkId)}static arnForCoreNetwork(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkmanager_ICoreNetworkRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForCoreNetwork),error}return resource.coreNetworkRef.coreNetworkArn}_description;_globalNetworkId;_policyDocument;tags;_tagsRaw;cfnPropertyNames={description:"Description",globalNetworkId:"GlobalNetworkId",policyDocument:"PolicyDocument",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnCoreNetwork.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnCoreNetworkProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCoreNetwork),error}cdk().requireProperty(props,"globalNetworkId",this),this._description=props.description,this._globalNetworkId=props.globalNetworkId,this._policyDocument=props.policyDocument,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::CoreNetwork",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get coreNetworkRef(){return{coreNetworkId:this.ref,coreNetworkArn:this.attrCoreNetworkArn}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get globalNetworkId(){return this._globalNetworkId}set globalNetworkId(value){cdk().traceProperty(this.node,"GlobalNetworkId"),this._globalNetworkId=value}get policyDocument(){return this._policyDocument}set policyDocument(value){cdk().traceProperty(this.node,"PolicyDocument"),this._policyDocument=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrCoreNetworkArn(){return cdk().Token.asString(this.getAtt("CoreNetworkArn",cdk().ResolutionTypeHint.STRING))}get attrCoreNetworkId(){return cdk().Token.asString(this.getAtt("CoreNetworkId",cdk().ResolutionTypeHint.STRING))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrEdges(){return this.getAtt("Edges")}get attrNetworkFunctionGroups(){return this.getAtt("NetworkFunctionGroups")}get attrOwnerAccount(){return cdk().Token.asString(this.getAtt("OwnerAccount",cdk().ResolutionTypeHint.STRING))}get attrSegments(){return this.getAtt("Segments")}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,globalNetworkId:this._globalNetworkId,policyDocument:this._policyDocument,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",CfnCoreNetwork.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCoreNetworkPropsToCloudFormation(props)}}exports.CfnCoreNetwork=CfnCoreNetwork;function CfnCoreNetworkCoreNetworkSegmentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("edgeLocations",cdk().listValidator(cdk().validateString))(properties.edgeLocations)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("sharedSegments",cdk().listValidator(cdk().validateString))(properties.sharedSegments)),errors.wrap('supplied properties not correct for "CoreNetworkSegmentProperty"')}function convertCfnCoreNetworkCoreNetworkSegmentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCoreNetworkCoreNetworkSegmentPropertyValidator(properties).assertSuccess(),{EdgeLocations:cdk().listMapper(cdk().stringToCloudFormation)(properties.edgeLocations),Name:cdk().stringToCloudFormation(properties.name),SharedSegments:cdk().listMapper(cdk().stringToCloudFormation)(properties.sharedSegments)}):properties}function CfnCoreNetworkCoreNetworkSegmentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("edgeLocations","EdgeLocations",properties.EdgeLocations!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.EdgeLocations):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("sharedSegments","SharedSegments",properties.SharedSegments!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SharedSegments):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCoreNetworkCoreNetworkEdgePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("asn",cdk().validateNumber)(properties.asn)),errors.collect(cdk().propertyValidator("edgeLocation",cdk().validateString)(properties.edgeLocation)),errors.collect(cdk().propertyValidator("insideCidrBlocks",cdk().listValidator(cdk().validateString))(properties.insideCidrBlocks)),errors.wrap('supplied properties not correct for "CoreNetworkEdgeProperty"')}function convertCfnCoreNetworkCoreNetworkEdgePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCoreNetworkCoreNetworkEdgePropertyValidator(properties).assertSuccess(),{Asn:cdk().numberToCloudFormation(properties.asn),EdgeLocation:cdk().stringToCloudFormation(properties.edgeLocation),InsideCidrBlocks:cdk().listMapper(cdk().stringToCloudFormation)(properties.insideCidrBlocks)}):properties}function CfnCoreNetworkCoreNetworkEdgePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("asn","Asn",properties.Asn!=null?cfn_parse().FromCloudFormation.getNumber(properties.Asn):void 0),ret.addPropertyResult("edgeLocation","EdgeLocation",properties.EdgeLocation!=null?cfn_parse().FromCloudFormation.getString(properties.EdgeLocation):void 0),ret.addPropertyResult("insideCidrBlocks","InsideCidrBlocks",properties.InsideCidrBlocks!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.InsideCidrBlocks):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCoreNetworkSegmentsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("sendTo",cdk().listValidator(cdk().validateString))(properties.sendTo)),errors.collect(cdk().propertyValidator("sendVia",cdk().listValidator(cdk().validateString))(properties.sendVia)),errors.wrap('supplied properties not correct for "SegmentsProperty"')}function convertCfnCoreNetworkSegmentsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCoreNetworkSegmentsPropertyValidator(properties).assertSuccess(),{SendTo:cdk().listMapper(cdk().stringToCloudFormation)(properties.sendTo),SendVia:cdk().listMapper(cdk().stringToCloudFormation)(properties.sendVia)}):properties}function CfnCoreNetworkSegmentsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("sendTo","SendTo",properties.SendTo!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SendTo):void 0),ret.addPropertyResult("sendVia","SendVia",properties.SendVia!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SendVia):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCoreNetworkCoreNetworkNetworkFunctionGroupPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("edgeLocations",cdk().listValidator(cdk().validateString))(properties.edgeLocations)),errors.collect(cdk().propertyValidator("name",cdk().validateString)(properties.name)),errors.collect(cdk().propertyValidator("segments",CfnCoreNetworkSegmentsPropertyValidator)(properties.segments)),errors.wrap('supplied properties not correct for "CoreNetworkNetworkFunctionGroupProperty"')}function convertCfnCoreNetworkCoreNetworkNetworkFunctionGroupPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCoreNetworkCoreNetworkNetworkFunctionGroupPropertyValidator(properties).assertSuccess(),{EdgeLocations:cdk().listMapper(cdk().stringToCloudFormation)(properties.edgeLocations),Name:cdk().stringToCloudFormation(properties.name),Segments:convertCfnCoreNetworkSegmentsPropertyToCloudFormation(properties.segments)}):properties}function CfnCoreNetworkCoreNetworkNetworkFunctionGroupPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("edgeLocations","EdgeLocations",properties.EdgeLocations!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.EdgeLocations):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse().FromCloudFormation.getString(properties.Name):void 0),ret.addPropertyResult("segments","Segments",properties.Segments!=null?CfnCoreNetworkSegmentsPropertyFromCloudFormation(properties.Segments):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCoreNetworkPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("globalNetworkId",cdk().requiredValidator)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().validateString)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("policyDocument",cdk().validateObject)(properties.policyDocument)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnCoreNetworkProps"')}function convertCfnCoreNetworkPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCoreNetworkPropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),GlobalNetworkId:cdk().stringToCloudFormation(properties.globalNetworkId),PolicyDocument:cdk().objectToCloudFormation(properties.policyDocument),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCoreNetworkPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("globalNetworkId","GlobalNetworkId",properties.GlobalNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalNetworkId):void 0),ret.addPropertyResult("policyDocument","PolicyDocument",properties.PolicyDocument!=null?cfn_parse().FromCloudFormation.getAny(properties.PolicyDocument):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 CfnCustomerGatewayAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnCustomerGatewayAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::CustomerGatewayAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCustomerGatewayAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCustomerGatewayAssociation(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 isCfnCustomerGatewayAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCustomerGatewayAssociation.CFN_RESOURCE_TYPE_NAME}_customerGatewayArn;_deviceId;_globalNetworkId;_linkId;cfnPropertyNames={customerGatewayArn:"CustomerGatewayArn",deviceId:"DeviceId",globalNetworkId:"GlobalNetworkId",linkId:"LinkId"};constructor(scope,id,props){super(scope,id,{type:CfnCustomerGatewayAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnCustomerGatewayAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCustomerGatewayAssociation),error}cdk().requireProperty(props,"customerGatewayArn",this),cdk().requireProperty(props,"deviceId",this),cdk().requireProperty(props,"globalNetworkId",this),this._customerGatewayArn=props.customerGatewayArn,this._deviceId=props.deviceId,this._globalNetworkId=props.globalNetworkId,this._linkId=props.linkId}get customerGatewayAssociationRef(){return{globalNetworkId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),customerGatewayArn:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get customerGatewayArn(){return this._customerGatewayArn}set customerGatewayArn(value){cdk().traceProperty(this.node,"CustomerGatewayArn"),this._customerGatewayArn=value}get deviceId(){return this._deviceId}set deviceId(value){cdk().traceProperty(this.node,"DeviceId"),this._deviceId=value}get globalNetworkId(){return this._globalNetworkId}set globalNetworkId(value){cdk().traceProperty(this.node,"GlobalNetworkId"),this._globalNetworkId=value}get linkId(){return this._linkId}set linkId(value){cdk().traceProperty(this.node,"LinkId"),this._linkId=value}get cfnProperties(){return{customerGatewayArn:this._customerGatewayArn,deviceId:this._deviceId,globalNetworkId:this._globalNetworkId,linkId:this._linkId}}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",CfnCustomerGatewayAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCustomerGatewayAssociationPropsToCloudFormation(props)}}exports.CfnCustomerGatewayAssociation=CfnCustomerGatewayAssociation;function CfnCustomerGatewayAssociationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("customerGatewayArn",cdk().requiredValidator)(properties.customerGatewayArn)),errors.collect(cdk().propertyValidator("customerGatewayArn",cdk().validateString)(properties.customerGatewayArn)),errors.collect(cdk().propertyValidator("deviceId",cdk().requiredValidator)(properties.deviceId)),errors.collect(cdk().propertyValidator("deviceId",cdk().validateString)(properties.deviceId)),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().requiredValidator)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().validateString)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("linkId",cdk().validateString)(properties.linkId)),errors.wrap('supplied properties not correct for "CfnCustomerGatewayAssociationProps"')}function convertCfnCustomerGatewayAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCustomerGatewayAssociationPropsValidator(properties).assertSuccess(),{CustomerGatewayArn:cdk().stringToCloudFormation(properties.customerGatewayArn),DeviceId:cdk().stringToCloudFormation(properties.deviceId),GlobalNetworkId:cdk().stringToCloudFormation(properties.globalNetworkId),LinkId:cdk().stringToCloudFormation(properties.linkId)}):properties}function CfnCustomerGatewayAssociationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("customerGatewayArn","CustomerGatewayArn",properties.CustomerGatewayArn!=null?cfn_parse().FromCloudFormation.getString(properties.CustomerGatewayArn):void 0),ret.addPropertyResult("deviceId","DeviceId",properties.DeviceId!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceId):void 0),ret.addPropertyResult("globalNetworkId","GlobalNetworkId",properties.GlobalNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalNetworkId):void 0),ret.addPropertyResult("linkId","LinkId",properties.LinkId!=null?cfn_parse().FromCloudFormation.getString(properties.LinkId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDevice extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnDevice",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::Device";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDevicePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDevice(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 isCfnDevice(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDevice.CFN_RESOURCE_TYPE_NAME}static arnForDevice(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkmanager_IDeviceRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForDevice),error}return resource.deviceRef.deviceArn}_awsLocation;_description;_globalNetworkId;_location;_model;_serialNumber;_siteId;tags;_tagsRaw;_type;_vendor;cfnPropertyNames={awsLocation:"AWSLocation",description:"Description",globalNetworkId:"GlobalNetworkId",location:"Location",model:"Model",serialNumber:"SerialNumber",siteId:"SiteId",tags:"Tags",type:"Type",vendor:"Vendor"};constructor(scope,id,props){super(scope,id,{type:CfnDevice.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnDeviceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDevice),error}cdk().requireProperty(props,"globalNetworkId",this),this._awsLocation=props.awsLocation,this._description=props.description,this._globalNetworkId=props.globalNetworkId,this._location=props.location,this._model=props.model,this._serialNumber=props.serialNumber,this._siteId=props.siteId,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::Device",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._type=props.type,this._vendor=props.vendor}get deviceRef(){return{globalNetworkId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),deviceId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),deviceArn:this.attrDeviceArn}}get awsLocation(){return this._awsLocation}set awsLocation(value){cdk().traceProperty(this.node,"AWSLocation"),this._awsLocation=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get globalNetworkId(){return this._globalNetworkId}set globalNetworkId(value){cdk().traceProperty(this.node,"GlobalNetworkId"),this._globalNetworkId=value}get location(){return this._location}set location(value){cdk().traceProperty(this.node,"Location"),this._location=value}get model(){return this._model}set model(value){cdk().traceProperty(this.node,"Model"),this._model=value}get serialNumber(){return this._serialNumber}set serialNumber(value){cdk().traceProperty(this.node,"SerialNumber"),this._serialNumber=value}get siteId(){return this._siteId}set siteId(value){cdk().traceProperty(this.node,"SiteId"),this._siteId=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 vendor(){return this._vendor}set vendor(value){cdk().traceProperty(this.node,"Vendor"),this._vendor=value}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrDeviceArn(){return cdk().Token.asString(this.getAtt("DeviceArn",cdk().ResolutionTypeHint.STRING))}get attrDeviceId(){return cdk().Token.asString(this.getAtt("DeviceId",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{awsLocation:this._awsLocation,description:this._description,globalNetworkId:this._globalNetworkId,location:this._location,model:this._model,serialNumber:this._serialNumber,siteId:this._siteId,tags:this.tags.renderTags(),type:this._type,vendor:this._vendor}}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",CfnDevice.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDevicePropsToCloudFormation(props)}}exports.CfnDevice=CfnDevice;function CfnDeviceAWSLocationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("subnetArn",cdk().validateString)(properties.subnetArn)),errors.collect(cdk().propertyValidator("zone",cdk().validateString)(properties.zone)),errors.wrap('supplied properties not correct for "AWSLocationProperty"')}function convertCfnDeviceAWSLocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDeviceAWSLocationPropertyValidator(properties).assertSuccess(),{SubnetArn:cdk().stringToCloudFormation(properties.subnetArn),Zone:cdk().stringToCloudFormation(properties.zone)}):properties}function CfnDeviceAWSLocationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("subnetArn","SubnetArn",properties.SubnetArn!=null?cfn_parse().FromCloudFormation.getString(properties.SubnetArn):void 0),ret.addPropertyResult("zone","Zone",properties.Zone!=null?cfn_parse().FromCloudFormation.getString(properties.Zone):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDeviceLocationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("latitude",cdk().validateString)(properties.latitude)),errors.collect(cdk().propertyValidator("longitude",cdk().validateString)(properties.longitude)),errors.wrap('supplied properties not correct for "LocationProperty"')}function convertCfnDeviceLocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDeviceLocationPropertyValidator(properties).assertSuccess(),{Address:cdk().stringToCloudFormation(properties.address),Latitude:cdk().stringToCloudFormation(properties.latitude),Longitude:cdk().stringToCloudFormation(properties.longitude)}):properties}function CfnDeviceLocationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("latitude","Latitude",properties.Latitude!=null?cfn_parse().FromCloudFormation.getString(properties.Latitude):void 0),ret.addPropertyResult("longitude","Longitude",properties.Longitude!=null?cfn_parse().FromCloudFormation.getString(properties.Longitude):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnDevicePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("awsLocation",CfnDeviceAWSLocationPropertyValidator)(properties.awsLocation)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().requiredValidator)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().validateString)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("location",CfnDeviceLocationPropertyValidator)(properties.location)),errors.collect(cdk().propertyValidator("model",cdk().validateString)(properties.model)),errors.collect(cdk().propertyValidator("serialNumber",cdk().validateString)(properties.serialNumber)),errors.collect(cdk().propertyValidator("siteId",cdk().validateString)(properties.siteId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.collect(cdk().propertyValidator("vendor",cdk().validateString)(properties.vendor)),errors.wrap('supplied properties not correct for "CfnDeviceProps"')}function convertCfnDevicePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDevicePropsValidator(properties).assertSuccess(),{AWSLocation:convertCfnDeviceAWSLocationPropertyToCloudFormation(properties.awsLocation),Description:cdk().stringToCloudFormation(properties.description),GlobalNetworkId:cdk().stringToCloudFormation(properties.globalNetworkId),Location:convertCfnDeviceLocationPropertyToCloudFormation(properties.location),Model:cdk().stringToCloudFormation(properties.model),SerialNumber:cdk().stringToCloudFormation(properties.serialNumber),SiteId:cdk().stringToCloudFormation(properties.siteId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Type:cdk().stringToCloudFormation(properties.type),Vendor:cdk().stringToCloudFormation(properties.vendor)}):properties}function CfnDevicePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("awsLocation","AWSLocation",properties.AWSLocation!=null?CfnDeviceAWSLocationPropertyFromCloudFormation(properties.AWSLocation):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("globalNetworkId","GlobalNetworkId",properties.GlobalNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalNetworkId):void 0),ret.addPropertyResult("location","Location",properties.Location!=null?CfnDeviceLocationPropertyFromCloudFormation(properties.Location):void 0),ret.addPropertyResult("model","Model",properties.Model!=null?cfn_parse().FromCloudFormation.getString(properties.Model):void 0),ret.addPropertyResult("serialNumber","SerialNumber",properties.SerialNumber!=null?cfn_parse().FromCloudFormation.getString(properties.SerialNumber):void 0),ret.addPropertyResult("siteId","SiteId",properties.SiteId!=null?cfn_parse().FromCloudFormation.getString(properties.SiteId):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.addPropertyResult("vendor","Vendor",properties.Vendor!=null?cfn_parse().FromCloudFormation.getString(properties.Vendor):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnGlobalNetwork extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnGlobalNetwork",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::GlobalNetwork";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnGlobalNetworkPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnGlobalNetwork(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 isCfnGlobalNetwork(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnGlobalNetwork.CFN_RESOURCE_TYPE_NAME}static fromGlobalNetworkArn(scope,id,arn){class Import extends cdk().Resource{globalNetworkRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:networkmanager::${Account}:global-network/${GlobalNetworkId}").parse(arn2);this.globalNetworkRef={globalNetworkId:variables.GlobalNetworkId,globalNetworkArn:arn2}}}return new Import(scope,id,arn)}static fromGlobalNetworkId(scope,id,globalNetworkId){class Import extends cdk().Resource{globalNetworkRef;constructor(scope2,id2,globalNetworkId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:networkmanager::${Account}:global-network/${GlobalNetworkId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,GlobalNetworkId:globalNetworkId2});super(scope2,id2,{environmentFromArn:arn}),this.globalNetworkRef={globalNetworkId:globalNetworkId2,globalNetworkArn:arn}}}return new Import(scope,id,globalNetworkId)}static arnForGlobalNetwork(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkmanager_IGlobalNetworkRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForGlobalNetwork),error}return resource.globalNetworkRef.globalNetworkArn}_createdAt;_description;_state;tags;_tagsRaw;cfnPropertyNames={createdAt:"CreatedAt",description:"Description",state:"State",tags:"Tags"};constructor(scope,id,props={}){super(scope,id,{type:CfnGlobalNetwork.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnGlobalNetworkProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnGlobalNetwork),error}this._createdAt=props.createdAt,this._description=props.description,this._state=props.state,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::GlobalNetwork",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get globalNetworkRef(){return{globalNetworkId:this.ref,globalNetworkArn:this.attrArn}}get createdAt(){return this._createdAt}set createdAt(value){cdk().traceProperty(this.node,"CreatedAt"),this._createdAt=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get state(){return this._state}set state(value){cdk().traceProperty(this.node,"State"),this._state=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get 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{createdAt:this._createdAt,description:this._description,state:this._state,tags:this.tags.renderTags()}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnGlobalNetwork.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnGlobalNetworkPropsToCloudFormation(props)}}exports.CfnGlobalNetwork=CfnGlobalNetwork;function CfnGlobalNetworkPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("createdAt",cdk().validateString)(properties.createdAt)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnGlobalNetworkProps"')}function convertCfnGlobalNetworkPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalNetworkPropsValidator(properties).assertSuccess(),{CreatedAt:cdk().stringToCloudFormation(properties.createdAt),Description:cdk().stringToCloudFormation(properties.description),State:cdk().stringToCloudFormation(properties.state),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnGlobalNetworkPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("createdAt","CreatedAt",properties.CreatedAt!=null?cfn_parse().FromCloudFormation.getString(properties.CreatedAt):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLink extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnLink",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::Link";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLinkPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLink(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 isCfnLink(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLink.CFN_RESOURCE_TYPE_NAME}static arnForLink(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkmanager_ILinkRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForLink),error}return resource.linkRef.linkArn}_bandwidth;_description;_globalNetworkId;_provider;_siteId;tags;_tagsRaw;_type;cfnPropertyNames={bandwidth:"Bandwidth",description:"Description",globalNetworkId:"GlobalNetworkId",provider:"Provider",siteId:"SiteId",tags:"Tags",type:"Type"};constructor(scope,id,props){super(scope,id,{type:CfnLink.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnLinkProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLink),error}cdk().requireProperty(props,"bandwidth",this),cdk().requireProperty(props,"globalNetworkId",this),cdk().requireProperty(props,"siteId",this),this._bandwidth=props.bandwidth,this._description=props.description,this._globalNetworkId=props.globalNetworkId,this._provider=props.provider,this._siteId=props.siteId,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::Link",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._type=props.type}get linkRef(){return{globalNetworkId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),linkId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),linkArn:this.attrLinkArn}}get bandwidth(){return this._bandwidth}set bandwidth(value){cdk().traceProperty(this.node,"Bandwidth"),this._bandwidth=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get globalNetworkId(){return this._globalNetworkId}set globalNetworkId(value){cdk().traceProperty(this.node,"GlobalNetworkId"),this._globalNetworkId=value}get provider(){return this._provider}set provider(value){cdk().traceProperty(this.node,"Provider"),this._provider=value}get siteId(){return this._siteId}set siteId(value){cdk().traceProperty(this.node,"SiteId"),this._siteId=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 attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrLinkArn(){return cdk().Token.asString(this.getAtt("LinkArn",cdk().ResolutionTypeHint.STRING))}get attrLinkId(){return cdk().Token.asString(this.getAtt("LinkId",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{bandwidth:this._bandwidth,description:this._description,globalNetworkId:this._globalNetworkId,provider:this._provider,siteId:this._siteId,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",CfnLink.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLinkPropsToCloudFormation(props)}}exports.CfnLink=CfnLink;function CfnLinkBandwidthPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("downloadSpeed",cdk().validateNumber)(properties.downloadSpeed)),errors.collect(cdk().propertyValidator("uploadSpeed",cdk().validateNumber)(properties.uploadSpeed)),errors.wrap('supplied properties not correct for "BandwidthProperty"')}function convertCfnLinkBandwidthPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLinkBandwidthPropertyValidator(properties).assertSuccess(),{DownloadSpeed:cdk().numberToCloudFormation(properties.downloadSpeed),UploadSpeed:cdk().numberToCloudFormation(properties.uploadSpeed)}):properties}function CfnLinkBandwidthPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("downloadSpeed","DownloadSpeed",properties.DownloadSpeed!=null?cfn_parse().FromCloudFormation.getNumber(properties.DownloadSpeed):void 0),ret.addPropertyResult("uploadSpeed","UploadSpeed",properties.UploadSpeed!=null?cfn_parse().FromCloudFormation.getNumber(properties.UploadSpeed):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLinkPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("bandwidth",cdk().requiredValidator)(properties.bandwidth)),errors.collect(cdk().propertyValidator("bandwidth",CfnLinkBandwidthPropertyValidator)(properties.bandwidth)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().requiredValidator)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().validateString)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("provider",cdk().validateString)(properties.provider)),errors.collect(cdk().propertyValidator("siteId",cdk().requiredValidator)(properties.siteId)),errors.collect(cdk().propertyValidator("siteId",cdk().validateString)(properties.siteId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.wrap('supplied properties not correct for "CfnLinkProps"')}function convertCfnLinkPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLinkPropsValidator(properties).assertSuccess(),{Bandwidth:convertCfnLinkBandwidthPropertyToCloudFormation(properties.bandwidth),Description:cdk().stringToCloudFormation(properties.description),GlobalNetworkId:cdk().stringToCloudFormation(properties.globalNetworkId),Provider:cdk().stringToCloudFormation(properties.provider),SiteId:cdk().stringToCloudFormation(properties.siteId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),Type:cdk().stringToCloudFormation(properties.type)}):properties}function CfnLinkPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("bandwidth","Bandwidth",properties.Bandwidth!=null?CfnLinkBandwidthPropertyFromCloudFormation(properties.Bandwidth):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("globalNetworkId","GlobalNetworkId",properties.GlobalNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalNetworkId):void 0),ret.addPropertyResult("provider","Provider",properties.Provider!=null?cfn_parse().FromCloudFormation.getString(properties.Provider):void 0),ret.addPropertyResult("siteId","SiteId",properties.SiteId!=null?cfn_parse().FromCloudFormation.getString(properties.SiteId):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 CfnLinkAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnLinkAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::LinkAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLinkAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnLinkAssociation(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 isCfnLinkAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnLinkAssociation.CFN_RESOURCE_TYPE_NAME}_deviceId;_globalNetworkId;_linkId;cfnPropertyNames={deviceId:"DeviceId",globalNetworkId:"GlobalNetworkId",linkId:"LinkId"};constructor(scope,id,props){super(scope,id,{type:CfnLinkAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnLinkAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLinkAssociation),error}cdk().requireProperty(props,"deviceId",this),cdk().requireProperty(props,"globalNetworkId",this),cdk().requireProperty(props,"linkId",this),this._deviceId=props.deviceId,this._globalNetworkId=props.globalNetworkId,this._linkId=props.linkId}get linkAssociationRef(){return{globalNetworkId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),deviceId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),linkId:cdk().Fn.select(2,cdk().Fn.split("|",this.ref))}}get deviceId(){return this._deviceId}set deviceId(value){cdk().traceProperty(this.node,"DeviceId"),this._deviceId=value}get globalNetworkId(){return this._globalNetworkId}set globalNetworkId(value){cdk().traceProperty(this.node,"GlobalNetworkId"),this._globalNetworkId=value}get linkId(){return this._linkId}set linkId(value){cdk().traceProperty(this.node,"LinkId"),this._linkId=value}get cfnProperties(){return{deviceId:this._deviceId,globalNetworkId:this._globalNetworkId,linkId:this._linkId}}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",CfnLinkAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnLinkAssociationPropsToCloudFormation(props)}}exports.CfnLinkAssociation=CfnLinkAssociation;function CfnLinkAssociationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("deviceId",cdk().requiredValidator)(properties.deviceId)),errors.collect(cdk().propertyValidator("deviceId",cdk().validateString)(properties.deviceId)),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().requiredValidator)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().validateString)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("linkId",cdk().requiredValidator)(properties.linkId)),errors.collect(cdk().propertyValidator("linkId",cdk().validateString)(properties.linkId)),errors.wrap('supplied properties not correct for "CfnLinkAssociationProps"')}function convertCfnLinkAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnLinkAssociationPropsValidator(properties).assertSuccess(),{DeviceId:cdk().stringToCloudFormation(properties.deviceId),GlobalNetworkId:cdk().stringToCloudFormation(properties.globalNetworkId),LinkId:cdk().stringToCloudFormation(properties.linkId)}):properties}function CfnLinkAssociationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceId","DeviceId",properties.DeviceId!=null?cfn_parse().FromCloudFormation.getString(properties.DeviceId):void 0),ret.addPropertyResult("globalNetworkId","GlobalNetworkId",properties.GlobalNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalNetworkId):void 0),ret.addPropertyResult("linkId","LinkId",properties.LinkId!=null?cfn_parse().FromCloudFormation.getString(properties.LinkId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSite extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnSite",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::Site";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSitePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSite(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 isCfnSite(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSite.CFN_RESOURCE_TYPE_NAME}static arnForSite(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkmanager_ISiteRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForSite),error}return resource.siteRef.siteArn}_description;_globalNetworkId;_location;tags;_tagsRaw;cfnPropertyNames={description:"Description",globalNetworkId:"GlobalNetworkId",location:"Location",tags:"Tags"};constructor(scope,id,props){super(scope,id,{type:CfnSite.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnSiteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSite),error}cdk().requireProperty(props,"globalNetworkId",this),this._description=props.description,this._globalNetworkId=props.globalNetworkId,this._location=props.location,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::Site",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags}get siteRef(){return{globalNetworkId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),siteId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),siteArn:this.attrSiteArn}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get globalNetworkId(){return this._globalNetworkId}set globalNetworkId(value){cdk().traceProperty(this.node,"GlobalNetworkId"),this._globalNetworkId=value}get location(){return this._location}set location(value){cdk().traceProperty(this.node,"Location"),this._location=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrSiteArn(){return cdk().Token.asString(this.getAtt("SiteArn",cdk().ResolutionTypeHint.STRING))}get attrSiteId(){return cdk().Token.asString(this.getAtt("SiteId",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,globalNetworkId:this._globalNetworkId,location:this._location,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",CfnSite.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSitePropsToCloudFormation(props)}}exports.CfnSite=CfnSite;function CfnSiteLocationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("latitude",cdk().validateString)(properties.latitude)),errors.collect(cdk().propertyValidator("longitude",cdk().validateString)(properties.longitude)),errors.wrap('supplied properties not correct for "LocationProperty"')}function convertCfnSiteLocationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSiteLocationPropertyValidator(properties).assertSuccess(),{Address:cdk().stringToCloudFormation(properties.address),Latitude:cdk().stringToCloudFormation(properties.latitude),Longitude:cdk().stringToCloudFormation(properties.longitude)}):properties}function CfnSiteLocationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("latitude","Latitude",properties.Latitude!=null?cfn_parse().FromCloudFormation.getString(properties.Latitude):void 0),ret.addPropertyResult("longitude","Longitude",properties.Longitude!=null?cfn_parse().FromCloudFormation.getString(properties.Longitude):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSitePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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("globalNetworkId",cdk().requiredValidator)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().validateString)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("location",CfnSiteLocationPropertyValidator)(properties.location)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnSiteProps"')}function convertCfnSitePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSitePropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),GlobalNetworkId:cdk().stringToCloudFormation(properties.globalNetworkId),Location:convertCfnSiteLocationPropertyToCloudFormation(properties.location),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnSitePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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("globalNetworkId","GlobalNetworkId",properties.GlobalNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalNetworkId):void 0),ret.addPropertyResult("location","Location",properties.Location!=null?CfnSiteLocationPropertyFromCloudFormation(properties.Location):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 CfnSiteToSiteVpnAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnSiteToSiteVpnAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::SiteToSiteVpnAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSiteToSiteVpnAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSiteToSiteVpnAttachment(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 isCfnSiteToSiteVpnAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSiteToSiteVpnAttachment.CFN_RESOURCE_TYPE_NAME}_coreNetworkId;_networkFunctionGroupName;_proposedNetworkFunctionGroupChange;_proposedSegmentChange;_routingPolicyLabel;tags;_tagsRaw;_vpnConnectionArn;cfnPropertyNames={coreNetworkId:"CoreNetworkId",networkFunctionGroupName:"NetworkFunctionGroupName",proposedNetworkFunctionGroupChange:"ProposedNetworkFunctionGroupChange",proposedSegmentChange:"ProposedSegmentChange",routingPolicyLabel:"RoutingPolicyLabel",tags:"Tags",vpnConnectionArn:"VpnConnectionArn"};constructor(scope,id,props){super(scope,id,{type:CfnSiteToSiteVpnAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnSiteToSiteVpnAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSiteToSiteVpnAttachment),error}cdk().requireProperty(props,"coreNetworkId",this),cdk().requireProperty(props,"vpnConnectionArn",this),this._coreNetworkId=props.coreNetworkId,this._networkFunctionGroupName=props.networkFunctionGroupName,this._proposedNetworkFunctionGroupChange=props.proposedNetworkFunctionGroupChange,this._proposedSegmentChange=props.proposedSegmentChange,this._routingPolicyLabel=props.routingPolicyLabel,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::SiteToSiteVpnAttachment",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._vpnConnectionArn=props.vpnConnectionArn}get siteToSiteVpnAttachmentRef(){return{attachmentId:this.ref}}get coreNetworkId(){return this._coreNetworkId}set coreNetworkId(value){cdk().traceProperty(this.node,"CoreNetworkId"),this._coreNetworkId=value}get networkFunctionGroupName(){return this._networkFunctionGroupName}set networkFunctionGroupName(value){cdk().traceProperty(this.node,"NetworkFunctionGroupName"),this._networkFunctionGroupName=value}get proposedNetworkFunctionGroupChange(){return this._proposedNetworkFunctionGroupChange}set proposedNetworkFunctionGroupChange(value){cdk().traceProperty(this.node,"ProposedNetworkFunctionGroupChange"),this._proposedNetworkFunctionGroupChange=value}get proposedSegmentChange(){return this._proposedSegmentChange}set proposedSegmentChange(value){cdk().traceProperty(this.node,"ProposedSegmentChange"),this._proposedSegmentChange=value}get routingPolicyLabel(){return this._routingPolicyLabel}set routingPolicyLabel(value){cdk().traceProperty(this.node,"RoutingPolicyLabel"),this._routingPolicyLabel=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get vpnConnectionArn(){return this._vpnConnectionArn}set vpnConnectionArn(value){cdk().traceProperty(this.node,"VpnConnectionArn"),this._vpnConnectionArn=value}get attrAttachmentId(){return cdk().Token.asString(this.getAtt("AttachmentId",cdk().ResolutionTypeHint.STRING))}get attrAttachmentPolicyRuleNumber(){return cdk().Token.asNumber(this.getAtt("AttachmentPolicyRuleNumber",cdk().ResolutionTypeHint.NUMBER))}get attrAttachmentType(){return cdk().Token.asString(this.getAtt("AttachmentType",cdk().ResolutionTypeHint.STRING))}get attrCoreNetworkArn(){return cdk().Token.asString(this.getAtt("CoreNetworkArn",cdk().ResolutionTypeHint.STRING))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrEdgeLocation(){return cdk().Token.asString(this.getAtt("EdgeLocation",cdk().ResolutionTypeHint.STRING))}get attrLastModificationErrors(){return cdk().Token.asList(this.getAtt("LastModificationErrors",cdk().ResolutionTypeHint.STRING_LIST))}get attrOwnerAccountId(){return cdk().Token.asString(this.getAtt("OwnerAccountId",cdk().ResolutionTypeHint.STRING))}get attrResourceArn(){return cdk().Token.asString(this.getAtt("ResourceArn",cdk().ResolutionTypeHint.STRING))}get attrSegmentName(){return cdk().Token.asString(this.getAtt("SegmentName",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrUpdatedAt(){return cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{coreNetworkId:this._coreNetworkId,networkFunctionGroupName:this._networkFunctionGroupName,proposedNetworkFunctionGroupChange:this._proposedNetworkFunctionGroupChange,proposedSegmentChange:this._proposedSegmentChange,routingPolicyLabel:this._routingPolicyLabel,tags:this.tags.renderTags(),vpnConnectionArn:this._vpnConnectionArn}}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",CfnSiteToSiteVpnAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSiteToSiteVpnAttachmentPropsToCloudFormation(props)}}exports.CfnSiteToSiteVpnAttachment=CfnSiteToSiteVpnAttachment;function CfnSiteToSiteVpnAttachmentProposedSegmentChangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachmentPolicyRuleNumber",cdk().validateNumber)(properties.attachmentPolicyRuleNumber)),errors.collect(cdk().propertyValidator("segmentName",cdk().validateString)(properties.segmentName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ProposedSegmentChangeProperty"')}function convertCfnSiteToSiteVpnAttachmentProposedSegmentChangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSiteToSiteVpnAttachmentProposedSegmentChangePropertyValidator(properties).assertSuccess(),{AttachmentPolicyRuleNumber:cdk().numberToCloudFormation(properties.attachmentPolicyRuleNumber),SegmentName:cdk().stringToCloudFormation(properties.segmentName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnSiteToSiteVpnAttachmentProposedSegmentChangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentPolicyRuleNumber","AttachmentPolicyRuleNumber",properties.AttachmentPolicyRuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.AttachmentPolicyRuleNumber):void 0),ret.addPropertyResult("segmentName","SegmentName",properties.SegmentName!=null?cfn_parse().FromCloudFormation.getString(properties.SegmentName):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 CfnSiteToSiteVpnAttachmentProposedNetworkFunctionGroupChangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachmentPolicyRuleNumber",cdk().validateNumber)(properties.attachmentPolicyRuleNumber)),errors.collect(cdk().propertyValidator("networkFunctionGroupName",cdk().validateString)(properties.networkFunctionGroupName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ProposedNetworkFunctionGroupChangeProperty"')}function convertCfnSiteToSiteVpnAttachmentProposedNetworkFunctionGroupChangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSiteToSiteVpnAttachmentProposedNetworkFunctionGroupChangePropertyValidator(properties).assertSuccess(),{AttachmentPolicyRuleNumber:cdk().numberToCloudFormation(properties.attachmentPolicyRuleNumber),NetworkFunctionGroupName:cdk().stringToCloudFormation(properties.networkFunctionGroupName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnSiteToSiteVpnAttachmentProposedNetworkFunctionGroupChangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentPolicyRuleNumber","AttachmentPolicyRuleNumber",properties.AttachmentPolicyRuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.AttachmentPolicyRuleNumber):void 0),ret.addPropertyResult("networkFunctionGroupName","NetworkFunctionGroupName",properties.NetworkFunctionGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkFunctionGroupName):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 CfnSiteToSiteVpnAttachmentPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().requiredValidator)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().validateString)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("networkFunctionGroupName",cdk().validateString)(properties.networkFunctionGroupName)),errors.collect(cdk().propertyValidator("proposedNetworkFunctionGroupChange",CfnSiteToSiteVpnAttachmentProposedNetworkFunctionGroupChangePropertyValidator)(properties.proposedNetworkFunctionGroupChange)),errors.collect(cdk().propertyValidator("proposedSegmentChange",CfnSiteToSiteVpnAttachmentProposedSegmentChangePropertyValidator)(properties.proposedSegmentChange)),errors.collect(cdk().propertyValidator("routingPolicyLabel",cdk().validateString)(properties.routingPolicyLabel)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpnConnectionArn",cdk().requiredValidator)(properties.vpnConnectionArn)),errors.collect(cdk().propertyValidator("vpnConnectionArn",cdk().validateString)(properties.vpnConnectionArn)),errors.wrap('supplied properties not correct for "CfnSiteToSiteVpnAttachmentProps"')}function convertCfnSiteToSiteVpnAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSiteToSiteVpnAttachmentPropsValidator(properties).assertSuccess(),{CoreNetworkId:cdk().stringToCloudFormation(properties.coreNetworkId),NetworkFunctionGroupName:cdk().stringToCloudFormation(properties.networkFunctionGroupName),ProposedNetworkFunctionGroupChange:convertCfnSiteToSiteVpnAttachmentProposedNetworkFunctionGroupChangePropertyToCloudFormation(properties.proposedNetworkFunctionGroupChange),ProposedSegmentChange:convertCfnSiteToSiteVpnAttachmentProposedSegmentChangePropertyToCloudFormation(properties.proposedSegmentChange),RoutingPolicyLabel:cdk().stringToCloudFormation(properties.routingPolicyLabel),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpnConnectionArn:cdk().stringToCloudFormation(properties.vpnConnectionArn)}):properties}function CfnSiteToSiteVpnAttachmentPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("coreNetworkId","CoreNetworkId",properties.CoreNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.CoreNetworkId):void 0),ret.addPropertyResult("networkFunctionGroupName","NetworkFunctionGroupName",properties.NetworkFunctionGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkFunctionGroupName):void 0),ret.addPropertyResult("proposedNetworkFunctionGroupChange","ProposedNetworkFunctionGroupChange",properties.ProposedNetworkFunctionGroupChange!=null?CfnSiteToSiteVpnAttachmentProposedNetworkFunctionGroupChangePropertyFromCloudFormation(properties.ProposedNetworkFunctionGroupChange):void 0),ret.addPropertyResult("proposedSegmentChange","ProposedSegmentChange",properties.ProposedSegmentChange!=null?CfnSiteToSiteVpnAttachmentProposedSegmentChangePropertyFromCloudFormation(properties.ProposedSegmentChange):void 0),ret.addPropertyResult("routingPolicyLabel","RoutingPolicyLabel",properties.RoutingPolicyLabel!=null?cfn_parse().FromCloudFormation.getString(properties.RoutingPolicyLabel):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpnConnectionArn","VpnConnectionArn",properties.VpnConnectionArn!=null?cfn_parse().FromCloudFormation.getString(properties.VpnConnectionArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayPeering extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnTransitGatewayPeering",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::TransitGatewayPeering";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayPeeringPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayPeering(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 isCfnTransitGatewayPeering(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayPeering.CFN_RESOURCE_TYPE_NAME}_coreNetworkId;tags;_tagsRaw;_transitGatewayArn;cfnPropertyNames={coreNetworkId:"CoreNetworkId",tags:"Tags",transitGatewayArn:"TransitGatewayArn"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayPeering.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnTransitGatewayPeeringProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayPeering),error}cdk().requireProperty(props,"coreNetworkId",this),cdk().requireProperty(props,"transitGatewayArn",this),this._coreNetworkId=props.coreNetworkId,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::TransitGatewayPeering",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transitGatewayArn=props.transitGatewayArn}get transitGatewayPeeringRef(){return{peeringId:this.ref}}get coreNetworkId(){return this._coreNetworkId}set coreNetworkId(value){cdk().traceProperty(this.node,"CoreNetworkId"),this._coreNetworkId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transitGatewayArn(){return this._transitGatewayArn}set transitGatewayArn(value){cdk().traceProperty(this.node,"TransitGatewayArn"),this._transitGatewayArn=value}get attrCoreNetworkArn(){return cdk().Token.asString(this.getAtt("CoreNetworkArn",cdk().ResolutionTypeHint.STRING))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrEdgeLocation(){return cdk().Token.asString(this.getAtt("EdgeLocation",cdk().ResolutionTypeHint.STRING))}get attrLastModificationErrors(){return cdk().Token.asList(this.getAtt("LastModificationErrors",cdk().ResolutionTypeHint.STRING_LIST))}get attrOwnerAccountId(){return cdk().Token.asString(this.getAtt("OwnerAccountId",cdk().ResolutionTypeHint.STRING))}get attrPeeringId(){return cdk().Token.asString(this.getAtt("PeeringId",cdk().ResolutionTypeHint.STRING))}get attrPeeringType(){return cdk().Token.asString(this.getAtt("PeeringType",cdk().ResolutionTypeHint.STRING))}get attrResourceArn(){return cdk().Token.asString(this.getAtt("ResourceArn",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrTransitGatewayPeeringAttachmentId(){return cdk().Token.asString(this.getAtt("TransitGatewayPeeringAttachmentId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{coreNetworkId:this._coreNetworkId,tags:this.tags.renderTags(),transitGatewayArn:this._transitGatewayArn}}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",CfnTransitGatewayPeering.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayPeeringPropsToCloudFormation(props)}}exports.CfnTransitGatewayPeering=CfnTransitGatewayPeering;function CfnTransitGatewayPeeringPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().requiredValidator)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().validateString)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayArn",cdk().requiredValidator)(properties.transitGatewayArn)),errors.collect(cdk().propertyValidator("transitGatewayArn",cdk().validateString)(properties.transitGatewayArn)),errors.wrap('supplied properties not correct for "CfnTransitGatewayPeeringProps"')}function convertCfnTransitGatewayPeeringPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayPeeringPropsValidator(properties).assertSuccess(),{CoreNetworkId:cdk().stringToCloudFormation(properties.coreNetworkId),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayArn:cdk().stringToCloudFormation(properties.transitGatewayArn)}):properties}function CfnTransitGatewayPeeringPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("coreNetworkId","CoreNetworkId",properties.CoreNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.CoreNetworkId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayArn","TransitGatewayArn",properties.TransitGatewayArn!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRegistration extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnTransitGatewayRegistration",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::TransitGatewayRegistration";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRegistrationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayRegistration(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 isCfnTransitGatewayRegistration(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayRegistration.CFN_RESOURCE_TYPE_NAME}_globalNetworkId;_transitGatewayArn;cfnPropertyNames={globalNetworkId:"GlobalNetworkId",transitGatewayArn:"TransitGatewayArn"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRegistration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnTransitGatewayRegistrationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRegistration),error}cdk().requireProperty(props,"globalNetworkId",this),cdk().requireProperty(props,"transitGatewayArn",this),this._globalNetworkId=cdk().getRefProperty(props.globalNetworkId?.globalNetworkRef,"globalNetworkId")??cdk().ensureStringOrUndefined(props.globalNetworkId,"globalNetworkId","networkmanager.IGlobalNetworkRef | string"),this._transitGatewayArn=props.transitGatewayArn}get transitGatewayRegistrationRef(){return{globalNetworkId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),transitGatewayArn:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get globalNetworkId(){return this._globalNetworkId}set globalNetworkId(value){cdk().traceProperty(this.node,"GlobalNetworkId"),this._globalNetworkId=value}get transitGatewayArn(){return this._transitGatewayArn}set transitGatewayArn(value){cdk().traceProperty(this.node,"TransitGatewayArn"),this._transitGatewayArn=value}get cfnProperties(){return{globalNetworkId:this._globalNetworkId,transitGatewayArn:this._transitGatewayArn}}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",CfnTransitGatewayRegistration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayRegistrationPropsToCloudFormation(props)}}exports.CfnTransitGatewayRegistration=CfnTransitGatewayRegistration;function CfnTransitGatewayRegistrationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().requiredValidator)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("globalNetworkId",cdk().validateString)(properties.globalNetworkId)),errors.collect(cdk().propertyValidator("transitGatewayArn",cdk().requiredValidator)(properties.transitGatewayArn)),errors.collect(cdk().propertyValidator("transitGatewayArn",cdk().validateString)(properties.transitGatewayArn)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRegistrationProps"')}function convertCfnTransitGatewayRegistrationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayRegistrationPropsValidator(properties).assertSuccess(),{GlobalNetworkId:cdk().stringToCloudFormation(properties.globalNetworkId),TransitGatewayArn:cdk().stringToCloudFormation(properties.transitGatewayArn)}):properties}function CfnTransitGatewayRegistrationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("globalNetworkId","GlobalNetworkId",properties.GlobalNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalNetworkId):void 0),ret.addPropertyResult("transitGatewayArn","TransitGatewayArn",properties.TransitGatewayArn!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRouteTableAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnTransitGatewayRouteTableAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::TransitGatewayRouteTableAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRouteTableAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTransitGatewayRouteTableAttachment(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 isCfnTransitGatewayRouteTableAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTransitGatewayRouteTableAttachment.CFN_RESOURCE_TYPE_NAME}_networkFunctionGroupName;_peeringId;_proposedNetworkFunctionGroupChange;_proposedSegmentChange;_routingPolicyLabel;tags;_tagsRaw;_transitGatewayRouteTableArn;cfnPropertyNames={networkFunctionGroupName:"NetworkFunctionGroupName",peeringId:"PeeringId",proposedNetworkFunctionGroupChange:"ProposedNetworkFunctionGroupChange",proposedSegmentChange:"ProposedSegmentChange",routingPolicyLabel:"RoutingPolicyLabel",tags:"Tags",transitGatewayRouteTableArn:"TransitGatewayRouteTableArn"};constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRouteTableAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnTransitGatewayRouteTableAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRouteTableAttachment),error}cdk().requireProperty(props,"peeringId",this),cdk().requireProperty(props,"transitGatewayRouteTableArn",this),this._networkFunctionGroupName=props.networkFunctionGroupName,this._peeringId=props.peeringId,this._proposedNetworkFunctionGroupChange=props.proposedNetworkFunctionGroupChange,this._proposedSegmentChange=props.proposedSegmentChange,this._routingPolicyLabel=props.routingPolicyLabel,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::TransitGatewayRouteTableAttachment",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._transitGatewayRouteTableArn=props.transitGatewayRouteTableArn}get transitGatewayRouteTableAttachmentRef(){return{attachmentId:this.ref}}get networkFunctionGroupName(){return this._networkFunctionGroupName}set networkFunctionGroupName(value){cdk().traceProperty(this.node,"NetworkFunctionGroupName"),this._networkFunctionGroupName=value}get peeringId(){return this._peeringId}set peeringId(value){cdk().traceProperty(this.node,"PeeringId"),this._peeringId=value}get proposedNetworkFunctionGroupChange(){return this._proposedNetworkFunctionGroupChange}set proposedNetworkFunctionGroupChange(value){cdk().traceProperty(this.node,"ProposedNetworkFunctionGroupChange"),this._proposedNetworkFunctionGroupChange=value}get proposedSegmentChange(){return this._proposedSegmentChange}set proposedSegmentChange(value){cdk().traceProperty(this.node,"ProposedSegmentChange"),this._proposedSegmentChange=value}get routingPolicyLabel(){return this._routingPolicyLabel}set routingPolicyLabel(value){cdk().traceProperty(this.node,"RoutingPolicyLabel"),this._routingPolicyLabel=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get transitGatewayRouteTableArn(){return this._transitGatewayRouteTableArn}set transitGatewayRouteTableArn(value){cdk().traceProperty(this.node,"TransitGatewayRouteTableArn"),this._transitGatewayRouteTableArn=value}get attrAttachmentId(){return cdk().Token.asString(this.getAtt("AttachmentId",cdk().ResolutionTypeHint.STRING))}get attrAttachmentPolicyRuleNumber(){return cdk().Token.asNumber(this.getAtt("AttachmentPolicyRuleNumber",cdk().ResolutionTypeHint.NUMBER))}get attrAttachmentType(){return cdk().Token.asString(this.getAtt("AttachmentType",cdk().ResolutionTypeHint.STRING))}get attrCoreNetworkArn(){return cdk().Token.asString(this.getAtt("CoreNetworkArn",cdk().ResolutionTypeHint.STRING))}get attrCoreNetworkId(){return cdk().Token.asString(this.getAtt("CoreNetworkId",cdk().ResolutionTypeHint.STRING))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrEdgeLocation(){return cdk().Token.asString(this.getAtt("EdgeLocation",cdk().ResolutionTypeHint.STRING))}get attrLastModificationErrors(){return cdk().Token.asList(this.getAtt("LastModificationErrors",cdk().ResolutionTypeHint.STRING_LIST))}get attrOwnerAccountId(){return cdk().Token.asString(this.getAtt("OwnerAccountId",cdk().ResolutionTypeHint.STRING))}get attrResourceArn(){return cdk().Token.asString(this.getAtt("ResourceArn",cdk().ResolutionTypeHint.STRING))}get attrSegmentName(){return cdk().Token.asString(this.getAtt("SegmentName",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrUpdatedAt(){return cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{networkFunctionGroupName:this._networkFunctionGroupName,peeringId:this._peeringId,proposedNetworkFunctionGroupChange:this._proposedNetworkFunctionGroupChange,proposedSegmentChange:this._proposedSegmentChange,routingPolicyLabel:this._routingPolicyLabel,tags:this.tags.renderTags(),transitGatewayRouteTableArn:this._transitGatewayRouteTableArn}}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",CfnTransitGatewayRouteTableAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTransitGatewayRouteTableAttachmentPropsToCloudFormation(props)}}exports.CfnTransitGatewayRouteTableAttachment=CfnTransitGatewayRouteTableAttachment;function CfnTransitGatewayRouteTableAttachmentProposedSegmentChangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachmentPolicyRuleNumber",cdk().validateNumber)(properties.attachmentPolicyRuleNumber)),errors.collect(cdk().propertyValidator("segmentName",cdk().validateString)(properties.segmentName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ProposedSegmentChangeProperty"')}function convertCfnTransitGatewayRouteTableAttachmentProposedSegmentChangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayRouteTableAttachmentProposedSegmentChangePropertyValidator(properties).assertSuccess(),{AttachmentPolicyRuleNumber:cdk().numberToCloudFormation(properties.attachmentPolicyRuleNumber),SegmentName:cdk().stringToCloudFormation(properties.segmentName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayRouteTableAttachmentProposedSegmentChangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentPolicyRuleNumber","AttachmentPolicyRuleNumber",properties.AttachmentPolicyRuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.AttachmentPolicyRuleNumber):void 0),ret.addPropertyResult("segmentName","SegmentName",properties.SegmentName!=null?cfn_parse().FromCloudFormation.getString(properties.SegmentName):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 CfnTransitGatewayRouteTableAttachmentProposedNetworkFunctionGroupChangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachmentPolicyRuleNumber",cdk().validateNumber)(properties.attachmentPolicyRuleNumber)),errors.collect(cdk().propertyValidator("networkFunctionGroupName",cdk().validateString)(properties.networkFunctionGroupName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ProposedNetworkFunctionGroupChangeProperty"')}function convertCfnTransitGatewayRouteTableAttachmentProposedNetworkFunctionGroupChangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayRouteTableAttachmentProposedNetworkFunctionGroupChangePropertyValidator(properties).assertSuccess(),{AttachmentPolicyRuleNumber:cdk().numberToCloudFormation(properties.attachmentPolicyRuleNumber),NetworkFunctionGroupName:cdk().stringToCloudFormation(properties.networkFunctionGroupName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayRouteTableAttachmentProposedNetworkFunctionGroupChangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentPolicyRuleNumber","AttachmentPolicyRuleNumber",properties.AttachmentPolicyRuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.AttachmentPolicyRuleNumber):void 0),ret.addPropertyResult("networkFunctionGroupName","NetworkFunctionGroupName",properties.NetworkFunctionGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkFunctionGroupName):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 CfnTransitGatewayRouteTableAttachmentPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("networkFunctionGroupName",cdk().validateString)(properties.networkFunctionGroupName)),errors.collect(cdk().propertyValidator("peeringId",cdk().requiredValidator)(properties.peeringId)),errors.collect(cdk().propertyValidator("peeringId",cdk().validateString)(properties.peeringId)),errors.collect(cdk().propertyValidator("proposedNetworkFunctionGroupChange",CfnTransitGatewayRouteTableAttachmentProposedNetworkFunctionGroupChangePropertyValidator)(properties.proposedNetworkFunctionGroupChange)),errors.collect(cdk().propertyValidator("proposedSegmentChange",CfnTransitGatewayRouteTableAttachmentProposedSegmentChangePropertyValidator)(properties.proposedSegmentChange)),errors.collect(cdk().propertyValidator("routingPolicyLabel",cdk().validateString)(properties.routingPolicyLabel)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("transitGatewayRouteTableArn",cdk().requiredValidator)(properties.transitGatewayRouteTableArn)),errors.collect(cdk().propertyValidator("transitGatewayRouteTableArn",cdk().validateString)(properties.transitGatewayRouteTableArn)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteTableAttachmentProps"')}function convertCfnTransitGatewayRouteTableAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTransitGatewayRouteTableAttachmentPropsValidator(properties).assertSuccess(),{NetworkFunctionGroupName:cdk().stringToCloudFormation(properties.networkFunctionGroupName),PeeringId:cdk().stringToCloudFormation(properties.peeringId),ProposedNetworkFunctionGroupChange:convertCfnTransitGatewayRouteTableAttachmentProposedNetworkFunctionGroupChangePropertyToCloudFormation(properties.proposedNetworkFunctionGroupChange),ProposedSegmentChange:convertCfnTransitGatewayRouteTableAttachmentProposedSegmentChangePropertyToCloudFormation(properties.proposedSegmentChange),RoutingPolicyLabel:cdk().stringToCloudFormation(properties.routingPolicyLabel),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TransitGatewayRouteTableArn:cdk().stringToCloudFormation(properties.transitGatewayRouteTableArn)}):properties}function CfnTransitGatewayRouteTableAttachmentPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("networkFunctionGroupName","NetworkFunctionGroupName",properties.NetworkFunctionGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkFunctionGroupName):void 0),ret.addPropertyResult("peeringId","PeeringId",properties.PeeringId!=null?cfn_parse().FromCloudFormation.getString(properties.PeeringId):void 0),ret.addPropertyResult("proposedNetworkFunctionGroupChange","ProposedNetworkFunctionGroupChange",properties.ProposedNetworkFunctionGroupChange!=null?CfnTransitGatewayRouteTableAttachmentProposedNetworkFunctionGroupChangePropertyFromCloudFormation(properties.ProposedNetworkFunctionGroupChange):void 0),ret.addPropertyResult("proposedSegmentChange","ProposedSegmentChange",properties.ProposedSegmentChange!=null?CfnTransitGatewayRouteTableAttachmentProposedSegmentChangePropertyFromCloudFormation(properties.ProposedSegmentChange):void 0),ret.addPropertyResult("routingPolicyLabel","RoutingPolicyLabel",properties.RoutingPolicyLabel!=null?cfn_parse().FromCloudFormation.getString(properties.RoutingPolicyLabel):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayRouteTableArn","TransitGatewayRouteTableArn",properties.TransitGatewayRouteTableArn!=null?cfn_parse().FromCloudFormation.getString(properties.TransitGatewayRouteTableArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVpcAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnVpcAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::VpcAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVpcAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnVpcAttachment(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 isCfnVpcAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnVpcAttachment.CFN_RESOURCE_TYPE_NAME}static fromAttachmentId(scope,id,attachmentId){class Import extends cdk().Resource{vpcAttachmentRef;constructor(scope2,id2,attachmentId2){super(scope2,id2),this.vpcAttachmentRef={attachmentId:attachmentId2}}}return new Import(scope,id,attachmentId)}static arnForVpcAttachment(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_networkmanager_IVpcAttachmentRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForVpcAttachment),error}return new(cfn_parse()).TemplateString("arn:${Partition}:networkmanager::${Account}:attachment/${AttachmentId}").interpolate({Partition:cdk().Stack.of(resource).partition,Region:resource.env.region,Account:resource.env.account,AttachmentId:resource.vpcAttachmentRef.attachmentId})}_coreNetworkId;_options;_proposedNetworkFunctionGroupChange;_proposedSegmentChange;_routingPolicyLabel;_subnetArns;tags;_tagsRaw;_vpcArn;cfnPropertyNames={coreNetworkId:"CoreNetworkId",options:"Options",proposedNetworkFunctionGroupChange:"ProposedNetworkFunctionGroupChange",proposedSegmentChange:"ProposedSegmentChange",routingPolicyLabel:"RoutingPolicyLabel",subnetArns:"SubnetArns",tags:"Tags",vpcArn:"VpcArn"};constructor(scope,id,props){super(scope,id,{type:CfnVpcAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnVpcAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVpcAttachment),error}cdk().requireProperty(props,"coreNetworkId",this),cdk().requireProperty(props,"subnetArns",this),cdk().requireProperty(props,"vpcArn",this),this._coreNetworkId=props.coreNetworkId,this._options=props.options,this._proposedNetworkFunctionGroupChange=props.proposedNetworkFunctionGroupChange,this._proposedSegmentChange=props.proposedSegmentChange,this._routingPolicyLabel=props.routingPolicyLabel,this._subnetArns=props.subnetArns,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::VpcAttachment",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._vpcArn=props.vpcArn}get vpcAttachmentRef(){return{attachmentId:this.ref}}get coreNetworkId(){return this._coreNetworkId}set coreNetworkId(value){cdk().traceProperty(this.node,"CoreNetworkId"),this._coreNetworkId=value}get options(){return this._options}set options(value){cdk().traceProperty(this.node,"Options"),this._options=value}get proposedNetworkFunctionGroupChange(){return this._proposedNetworkFunctionGroupChange}set proposedNetworkFunctionGroupChange(value){cdk().traceProperty(this.node,"ProposedNetworkFunctionGroupChange"),this._proposedNetworkFunctionGroupChange=value}get proposedSegmentChange(){return this._proposedSegmentChange}set proposedSegmentChange(value){cdk().traceProperty(this.node,"ProposedSegmentChange"),this._proposedSegmentChange=value}get routingPolicyLabel(){return this._routingPolicyLabel}set routingPolicyLabel(value){cdk().traceProperty(this.node,"RoutingPolicyLabel"),this._routingPolicyLabel=value}get subnetArns(){return this._subnetArns}set subnetArns(value){cdk().traceProperty(this.node,"SubnetArns"),this._subnetArns=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get vpcArn(){return this._vpcArn}set vpcArn(value){cdk().traceProperty(this.node,"VpcArn"),this._vpcArn=value}get attrAttachmentId(){return cdk().Token.asString(this.getAtt("AttachmentId",cdk().ResolutionTypeHint.STRING))}get attrAttachmentPolicyRuleNumber(){return cdk().Token.asNumber(this.getAtt("AttachmentPolicyRuleNumber",cdk().ResolutionTypeHint.NUMBER))}get attrAttachmentType(){return cdk().Token.asString(this.getAtt("AttachmentType",cdk().ResolutionTypeHint.STRING))}get attrCoreNetworkArn(){return cdk().Token.asString(this.getAtt("CoreNetworkArn",cdk().ResolutionTypeHint.STRING))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrEdgeLocation(){return cdk().Token.asString(this.getAtt("EdgeLocation",cdk().ResolutionTypeHint.STRING))}get attrLastModificationErrors(){return cdk().Token.asList(this.getAtt("LastModificationErrors",cdk().ResolutionTypeHint.STRING_LIST))}get attrNetworkFunctionGroupName(){return cdk().Token.asString(this.getAtt("NetworkFunctionGroupName",cdk().ResolutionTypeHint.STRING))}get attrOwnerAccountId(){return cdk().Token.asString(this.getAtt("OwnerAccountId",cdk().ResolutionTypeHint.STRING))}get attrResourceArn(){return cdk().Token.asString(this.getAtt("ResourceArn",cdk().ResolutionTypeHint.STRING))}get attrSegmentName(){return cdk().Token.asString(this.getAtt("SegmentName",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrUpdatedAt(){return cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{coreNetworkId:this._coreNetworkId,options:this._options,proposedNetworkFunctionGroupChange:this._proposedNetworkFunctionGroupChange,proposedSegmentChange:this._proposedSegmentChange,routingPolicyLabel:this._routingPolicyLabel,subnetArns:this._subnetArns,tags:this.tags.renderTags(),vpcArn:this._vpcArn}}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",CfnVpcAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnVpcAttachmentPropsToCloudFormation(props)}}exports.CfnVpcAttachment=CfnVpcAttachment;function CfnVpcAttachmentProposedSegmentChangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachmentPolicyRuleNumber",cdk().validateNumber)(properties.attachmentPolicyRuleNumber)),errors.collect(cdk().propertyValidator("segmentName",cdk().validateString)(properties.segmentName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ProposedSegmentChangeProperty"')}function convertCfnVpcAttachmentProposedSegmentChangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVpcAttachmentProposedSegmentChangePropertyValidator(properties).assertSuccess(),{AttachmentPolicyRuleNumber:cdk().numberToCloudFormation(properties.attachmentPolicyRuleNumber),SegmentName:cdk().stringToCloudFormation(properties.segmentName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVpcAttachmentProposedSegmentChangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentPolicyRuleNumber","AttachmentPolicyRuleNumber",properties.AttachmentPolicyRuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.AttachmentPolicyRuleNumber):void 0),ret.addPropertyResult("segmentName","SegmentName",properties.SegmentName!=null?cfn_parse().FromCloudFormation.getString(properties.SegmentName):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 CfnVpcAttachmentVpcOptionsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return 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().validateBoolean)(properties.applianceModeSupport)),errors.collect(cdk().propertyValidator("dnsSupport",cdk().validateBoolean)(properties.dnsSupport)),errors.collect(cdk().propertyValidator("ipv6Support",cdk().validateBoolean)(properties.ipv6Support)),errors.collect(cdk().propertyValidator("securityGroupReferencingSupport",cdk().validateBoolean)(properties.securityGroupReferencingSupport)),errors.wrap('supplied properties not correct for "VpcOptionsProperty"')}function convertCfnVpcAttachmentVpcOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVpcAttachmentVpcOptionsPropertyValidator(properties).assertSuccess(),{ApplianceModeSupport:cdk().booleanToCloudFormation(properties.applianceModeSupport),DnsSupport:cdk().booleanToCloudFormation(properties.dnsSupport),Ipv6Support:cdk().booleanToCloudFormation(properties.ipv6Support),SecurityGroupReferencingSupport:cdk().booleanToCloudFormation(properties.securityGroupReferencingSupport)}):properties}function CfnVpcAttachmentVpcOptionsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(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.getBoolean(properties.ApplianceModeSupport):void 0),ret.addPropertyResult("dnsSupport","DnsSupport",properties.DnsSupport!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DnsSupport):void 0),ret.addPropertyResult("ipv6Support","Ipv6Support",properties.Ipv6Support!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Ipv6Support):void 0),ret.addPropertyResult("securityGroupReferencingSupport","SecurityGroupReferencingSupport",properties.SecurityGroupReferencingSupport!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SecurityGroupReferencingSupport):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVpcAttachmentProposedNetworkFunctionGroupChangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachmentPolicyRuleNumber",cdk().validateNumber)(properties.attachmentPolicyRuleNumber)),errors.collect(cdk().propertyValidator("networkFunctionGroupName",cdk().validateString)(properties.networkFunctionGroupName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ProposedNetworkFunctionGroupChangeProperty"')}function convertCfnVpcAttachmentProposedNetworkFunctionGroupChangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVpcAttachmentProposedNetworkFunctionGroupChangePropertyValidator(properties).assertSuccess(),{AttachmentPolicyRuleNumber:cdk().numberToCloudFormation(properties.attachmentPolicyRuleNumber),NetworkFunctionGroupName:cdk().stringToCloudFormation(properties.networkFunctionGroupName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVpcAttachmentProposedNetworkFunctionGroupChangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentPolicyRuleNumber","AttachmentPolicyRuleNumber",properties.AttachmentPolicyRuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.AttachmentPolicyRuleNumber):void 0),ret.addPropertyResult("networkFunctionGroupName","NetworkFunctionGroupName",properties.NetworkFunctionGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkFunctionGroupName):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 CfnVpcAttachmentPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().requiredValidator)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().validateString)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("options",CfnVpcAttachmentVpcOptionsPropertyValidator)(properties.options)),errors.collect(cdk().propertyValidator("proposedNetworkFunctionGroupChange",CfnVpcAttachmentProposedNetworkFunctionGroupChangePropertyValidator)(properties.proposedNetworkFunctionGroupChange)),errors.collect(cdk().propertyValidator("proposedSegmentChange",CfnVpcAttachmentProposedSegmentChangePropertyValidator)(properties.proposedSegmentChange)),errors.collect(cdk().propertyValidator("routingPolicyLabel",cdk().validateString)(properties.routingPolicyLabel)),errors.collect(cdk().propertyValidator("subnetArns",cdk().requiredValidator)(properties.subnetArns)),errors.collect(cdk().propertyValidator("subnetArns",cdk().listValidator(cdk().validateString))(properties.subnetArns)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("vpcArn",cdk().requiredValidator)(properties.vpcArn)),errors.collect(cdk().propertyValidator("vpcArn",cdk().validateString)(properties.vpcArn)),errors.wrap('supplied properties not correct for "CfnVpcAttachmentProps"')}function convertCfnVpcAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnVpcAttachmentPropsValidator(properties).assertSuccess(),{CoreNetworkId:cdk().stringToCloudFormation(properties.coreNetworkId),Options:convertCfnVpcAttachmentVpcOptionsPropertyToCloudFormation(properties.options),ProposedNetworkFunctionGroupChange:convertCfnVpcAttachmentProposedNetworkFunctionGroupChangePropertyToCloudFormation(properties.proposedNetworkFunctionGroupChange),ProposedSegmentChange:convertCfnVpcAttachmentProposedSegmentChangePropertyToCloudFormation(properties.proposedSegmentChange),RoutingPolicyLabel:cdk().stringToCloudFormation(properties.routingPolicyLabel),SubnetArns:cdk().listMapper(cdk().stringToCloudFormation)(properties.subnetArns),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),VpcArn:cdk().stringToCloudFormation(properties.vpcArn)}):properties}function CfnVpcAttachmentPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("coreNetworkId","CoreNetworkId",properties.CoreNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.CoreNetworkId):void 0),ret.addPropertyResult("options","Options",properties.Options!=null?CfnVpcAttachmentVpcOptionsPropertyFromCloudFormation(properties.Options):void 0),ret.addPropertyResult("proposedNetworkFunctionGroupChange","ProposedNetworkFunctionGroupChange",properties.ProposedNetworkFunctionGroupChange!=null?CfnVpcAttachmentProposedNetworkFunctionGroupChangePropertyFromCloudFormation(properties.ProposedNetworkFunctionGroupChange):void 0),ret.addPropertyResult("proposedSegmentChange","ProposedSegmentChange",properties.ProposedSegmentChange!=null?CfnVpcAttachmentProposedSegmentChangePropertyFromCloudFormation(properties.ProposedSegmentChange):void 0),ret.addPropertyResult("routingPolicyLabel","RoutingPolicyLabel",properties.RoutingPolicyLabel!=null?cfn_parse().FromCloudFormation.getString(properties.RoutingPolicyLabel):void 0),ret.addPropertyResult("subnetArns","SubnetArns",properties.SubnetArns!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.SubnetArns):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcArn","VpcArn",properties.VpcArn!=null?cfn_parse().FromCloudFormation.getString(properties.VpcArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCoreNetworkPrefixListAssociation extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnCoreNetworkPrefixListAssociation",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::CoreNetworkPrefixListAssociation";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCoreNetworkPrefixListAssociationPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnCoreNetworkPrefixListAssociation(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 isCfnCoreNetworkPrefixListAssociation(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnCoreNetworkPrefixListAssociation.CFN_RESOURCE_TYPE_NAME}_coreNetworkId;_prefixListAlias;_prefixListArn;cfnPropertyNames={coreNetworkId:"CoreNetworkId",prefixListAlias:"PrefixListAlias",prefixListArn:"PrefixListArn"};constructor(scope,id,props){super(scope,id,{type:CfnCoreNetworkPrefixListAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnCoreNetworkPrefixListAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCoreNetworkPrefixListAssociation),error}cdk().requireProperty(props,"coreNetworkId",this),cdk().requireProperty(props,"prefixListAlias",this),cdk().requireProperty(props,"prefixListArn",this),this._coreNetworkId=props.coreNetworkId,this._prefixListAlias=props.prefixListAlias,this._prefixListArn=props.prefixListArn}get coreNetworkPrefixListAssociationRef(){return{coreNetworkId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),prefixListArn:cdk().Fn.select(1,cdk().Fn.split("|",this.ref))}}get coreNetworkId(){return this._coreNetworkId}set coreNetworkId(value){cdk().traceProperty(this.node,"CoreNetworkId"),this._coreNetworkId=value}get prefixListAlias(){return this._prefixListAlias}set prefixListAlias(value){cdk().traceProperty(this.node,"PrefixListAlias"),this._prefixListAlias=value}get prefixListArn(){return this._prefixListArn}set prefixListArn(value){cdk().traceProperty(this.node,"PrefixListArn"),this._prefixListArn=value}get cfnProperties(){return{coreNetworkId:this._coreNetworkId,prefixListAlias:this._prefixListAlias,prefixListArn:this._prefixListArn}}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",CfnCoreNetworkPrefixListAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnCoreNetworkPrefixListAssociationPropsToCloudFormation(props)}}exports.CfnCoreNetworkPrefixListAssociation=CfnCoreNetworkPrefixListAssociation;function CfnCoreNetworkPrefixListAssociationPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().requiredValidator)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().validateString)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("prefixListAlias",cdk().requiredValidator)(properties.prefixListAlias)),errors.collect(cdk().propertyValidator("prefixListAlias",cdk().validateString)(properties.prefixListAlias)),errors.collect(cdk().propertyValidator("prefixListArn",cdk().requiredValidator)(properties.prefixListArn)),errors.collect(cdk().propertyValidator("prefixListArn",cdk().validateString)(properties.prefixListArn)),errors.wrap('supplied properties not correct for "CfnCoreNetworkPrefixListAssociationProps"')}function convertCfnCoreNetworkPrefixListAssociationPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnCoreNetworkPrefixListAssociationPropsValidator(properties).assertSuccess(),{CoreNetworkId:cdk().stringToCloudFormation(properties.coreNetworkId),PrefixListAlias:cdk().stringToCloudFormation(properties.prefixListAlias),PrefixListArn:cdk().stringToCloudFormation(properties.prefixListArn)}):properties}function CfnCoreNetworkPrefixListAssociationPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("coreNetworkId","CoreNetworkId",properties.CoreNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.CoreNetworkId):void 0),ret.addPropertyResult("prefixListAlias","PrefixListAlias",properties.PrefixListAlias!=null?cfn_parse().FromCloudFormation.getString(properties.PrefixListAlias):void 0),ret.addPropertyResult("prefixListArn","PrefixListArn",properties.PrefixListArn!=null?cfn_parse().FromCloudFormation.getString(properties.PrefixListArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnDirectConnectGatewayAttachment extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_networkmanager.CfnDirectConnectGatewayAttachment",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::NetworkManager::DirectConnectGatewayAttachment";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDirectConnectGatewayAttachmentPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnDirectConnectGatewayAttachment(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 isCfnDirectConnectGatewayAttachment(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnDirectConnectGatewayAttachment.CFN_RESOURCE_TYPE_NAME}cdkTagManager;_coreNetworkId;_directConnectGatewayArn;_edgeLocations;_proposedNetworkFunctionGroupChange;_proposedSegmentChange;_routingPolicyLabel;_tags;cfnPropertyNames={tags:"Tags",coreNetworkId:"CoreNetworkId",directConnectGatewayArn:"DirectConnectGatewayArn",edgeLocations:"EdgeLocations",proposedNetworkFunctionGroupChange:"ProposedNetworkFunctionGroupChange",proposedSegmentChange:"ProposedSegmentChange",routingPolicyLabel:"RoutingPolicyLabel"};constructor(scope,id,props){super(scope,id,{type:CfnDirectConnectGatewayAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_networkmanager_CfnDirectConnectGatewayAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDirectConnectGatewayAttachment),error}cdk().requireProperty(props,"coreNetworkId",this),cdk().requireProperty(props,"directConnectGatewayArn",this),cdk().requireProperty(props,"edgeLocations",this),this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::NetworkManager::DirectConnectGatewayAttachment",void 0,{tagPropertyName:"tags"}),this._coreNetworkId=props.coreNetworkId,this._directConnectGatewayArn=props.directConnectGatewayArn,this._edgeLocations=props.edgeLocations,this._proposedNetworkFunctionGroupChange=props.proposedNetworkFunctionGroupChange,this._proposedSegmentChange=props.proposedSegmentChange,this._routingPolicyLabel=props.routingPolicyLabel,this._tags=props.tags}get directConnectGatewayAttachmentRef(){return{attachmentId:this.ref}}get coreNetworkId(){return this._coreNetworkId}set coreNetworkId(value){cdk().traceProperty(this.node,"CoreNetworkId"),this._coreNetworkId=value}get directConnectGatewayArn(){return this._directConnectGatewayArn}set directConnectGatewayArn(value){cdk().traceProperty(this.node,"DirectConnectGatewayArn"),this._directConnectGatewayArn=value}get edgeLocations(){return this._edgeLocations}set edgeLocations(value){cdk().traceProperty(this.node,"EdgeLocations"),this._edgeLocations=value}get proposedNetworkFunctionGroupChange(){return this._proposedNetworkFunctionGroupChange}set proposedNetworkFunctionGroupChange(value){cdk().traceProperty(this.node,"ProposedNetworkFunctionGroupChange"),this._proposedNetworkFunctionGroupChange=value}get proposedSegmentChange(){return this._proposedSegmentChange}set proposedSegmentChange(value){cdk().traceProperty(this.node,"ProposedSegmentChange"),this._proposedSegmentChange=value}get routingPolicyLabel(){return this._routingPolicyLabel}set routingPolicyLabel(value){cdk().traceProperty(this.node,"RoutingPolicyLabel"),this._routingPolicyLabel=value}get tags(){return this._tags}set tags(value){cdk().traceProperty(this.node,"Tags"),this._tags=value}get attrAttachmentId(){return cdk().Token.asString(this.getAtt("AttachmentId",cdk().ResolutionTypeHint.STRING))}get attrAttachmentPolicyRuleNumber(){return cdk().Token.asNumber(this.getAtt("AttachmentPolicyRuleNumber",cdk().ResolutionTypeHint.NUMBER))}get attrAttachmentType(){return cdk().Token.asString(this.getAtt("AttachmentType",cdk().ResolutionTypeHint.STRING))}get attrCoreNetworkArn(){return cdk().Token.asString(this.getAtt("CoreNetworkArn",cdk().ResolutionTypeHint.STRING))}get attrCreatedAt(){return cdk().Token.asString(this.getAtt("CreatedAt",cdk().ResolutionTypeHint.STRING))}get attrLastModificationErrors(){return cdk().Token.asList(this.getAtt("LastModificationErrors",cdk().ResolutionTypeHint.STRING_LIST))}get attrNetworkFunctionGroupName(){return cdk().Token.asString(this.getAtt("NetworkFunctionGroupName",cdk().ResolutionTypeHint.STRING))}get attrOwnerAccountId(){return cdk().Token.asString(this.getAtt("OwnerAccountId",cdk().ResolutionTypeHint.STRING))}get attrResourceArn(){return cdk().Token.asString(this.getAtt("ResourceArn",cdk().ResolutionTypeHint.STRING))}get attrSegmentName(){return cdk().Token.asString(this.getAtt("SegmentName",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrUpdatedAt(){return cdk().Token.asString(this.getAtt("UpdatedAt",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{tags:this.cdkTagManager.renderTags(this._tags),coreNetworkId:this._coreNetworkId,directConnectGatewayArn:this._directConnectGatewayArn,edgeLocations:this._edgeLocations,proposedNetworkFunctionGroupChange:this._proposedNetworkFunctionGroupChange,proposedSegmentChange:this._proposedSegmentChange,routingPolicyLabel:this._routingPolicyLabel}}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",CfnDirectConnectGatewayAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnDirectConnectGatewayAttachmentPropsToCloudFormation(props)}}exports.CfnDirectConnectGatewayAttachment=CfnDirectConnectGatewayAttachment;function CfnDirectConnectGatewayAttachmentProposedSegmentChangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachmentPolicyRuleNumber",cdk().validateNumber)(properties.attachmentPolicyRuleNumber)),errors.collect(cdk().propertyValidator("segmentName",cdk().validateString)(properties.segmentName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ProposedSegmentChangeProperty"')}function convertCfnDirectConnectGatewayAttachmentProposedSegmentChangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDirectConnectGatewayAttachmentProposedSegmentChangePropertyValidator(properties).assertSuccess(),{AttachmentPolicyRuleNumber:cdk().numberToCloudFormation(properties.attachmentPolicyRuleNumber),SegmentName:cdk().stringToCloudFormation(properties.segmentName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDirectConnectGatewayAttachmentProposedSegmentChangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentPolicyRuleNumber","AttachmentPolicyRuleNumber",properties.AttachmentPolicyRuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.AttachmentPolicyRuleNumber):void 0),ret.addPropertyResult("segmentName","SegmentName",properties.SegmentName!=null?cfn_parse().FromCloudFormation.getString(properties.SegmentName):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 CfnDirectConnectGatewayAttachmentProposedNetworkFunctionGroupChangePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attachmentPolicyRuleNumber",cdk().validateNumber)(properties.attachmentPolicyRuleNumber)),errors.collect(cdk().propertyValidator("networkFunctionGroupName",cdk().validateString)(properties.networkFunctionGroupName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ProposedNetworkFunctionGroupChangeProperty"')}function convertCfnDirectConnectGatewayAttachmentProposedNetworkFunctionGroupChangePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDirectConnectGatewayAttachmentProposedNetworkFunctionGroupChangePropertyValidator(properties).assertSuccess(),{AttachmentPolicyRuleNumber:cdk().numberToCloudFormation(properties.attachmentPolicyRuleNumber),NetworkFunctionGroupName:cdk().stringToCloudFormation(properties.networkFunctionGroupName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDirectConnectGatewayAttachmentProposedNetworkFunctionGroupChangePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentPolicyRuleNumber","AttachmentPolicyRuleNumber",properties.AttachmentPolicyRuleNumber!=null?cfn_parse().FromCloudFormation.getNumber(properties.AttachmentPolicyRuleNumber):void 0),ret.addPropertyResult("networkFunctionGroupName","NetworkFunctionGroupName",properties.NetworkFunctionGroupName!=null?cfn_parse().FromCloudFormation.getString(properties.NetworkFunctionGroupName):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 CfnDirectConnectGatewayAttachmentPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().requiredValidator)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("coreNetworkId",cdk().validateString)(properties.coreNetworkId)),errors.collect(cdk().propertyValidator("directConnectGatewayArn",cdk().requiredValidator)(properties.directConnectGatewayArn)),errors.collect(cdk().propertyValidator("directConnectGatewayArn",cdk().validateString)(properties.directConnectGatewayArn)),errors.collect(cdk().propertyValidator("edgeLocations",cdk().requiredValidator)(properties.edgeLocations)),errors.collect(cdk().propertyValidator("edgeLocations",cdk().listValidator(cdk().validateString))(properties.edgeLocations)),errors.collect(cdk().propertyValidator("proposedNetworkFunctionGroupChange",CfnDirectConnectGatewayAttachmentProposedNetworkFunctionGroupChangePropertyValidator)(properties.proposedNetworkFunctionGroupChange)),errors.collect(cdk().propertyValidator("proposedSegmentChange",CfnDirectConnectGatewayAttachmentProposedSegmentChangePropertyValidator)(properties.proposedSegmentChange)),errors.collect(cdk().propertyValidator("routingPolicyLabel",cdk().validateString)(properties.routingPolicyLabel)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDirectConnectGatewayAttachmentProps"')}function convertCfnDirectConnectGatewayAttachmentPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnDirectConnectGatewayAttachmentPropsValidator(properties).assertSuccess(),{CoreNetworkId:cdk().stringToCloudFormation(properties.coreNetworkId),DirectConnectGatewayArn:cdk().stringToCloudFormation(properties.directConnectGatewayArn),EdgeLocations:cdk().listMapper(cdk().stringToCloudFormation)(properties.edgeLocations),ProposedNetworkFunctionGroupChange:convertCfnDirectConnectGatewayAttachmentProposedNetworkFunctionGroupChangePropertyToCloudFormation(properties.proposedNetworkFunctionGroupChange),ProposedSegmentChange:convertCfnDirectConnectGatewayAttachmentProposedSegmentChangePropertyToCloudFormation(properties.proposedSegmentChange),RoutingPolicyLabel:cdk().stringToCloudFormation(properties.routingPolicyLabel),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDirectConnectGatewayAttachmentPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("coreNetworkId","CoreNetworkId",properties.CoreNetworkId!=null?cfn_parse().FromCloudFormation.getString(properties.CoreNetworkId):void 0),ret.addPropertyResult("directConnectGatewayArn","DirectConnectGatewayArn",properties.DirectConnectGatewayArn!=null?cfn_parse().FromCloudFormation.getString(properties.DirectConnectGatewayArn):void 0),ret.addPropertyResult("edgeLocations","EdgeLocations",properties.EdgeLocations!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.EdgeLocations):void 0),ret.addPropertyResult("proposedNetworkFunctionGroupChange","ProposedNetworkFunctionGroupChange",properties.ProposedNetworkFunctionGroupChange!=null?CfnDirectConnectGatewayAttachmentProposedNetworkFunctionGroupChangePropertyFromCloudFormation(properties.ProposedNetworkFunctionGroupChange):void 0),ret.addPropertyResult("proposedSegmentChange","ProposedSegmentChange",properties.ProposedSegmentChange!=null?CfnDirectConnectGatewayAttachmentProposedSegmentChangePropertyFromCloudFormation(properties.ProposedSegmentChange):void 0),ret.addPropertyResult("routingPolicyLabel","RoutingPolicyLabel",properties.RoutingPolicyLabel!=null?cfn_parse().FromCloudFormation.getString(properties.RoutingPolicyLabel):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}