aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 6.41 kB
JavaScript
var __decorate=exports&&exports.__decorate||function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},_a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PrefixList=exports.AddressFamily=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var connections_1=()=>{var tmp=require("./connections");return connections_1=()=>tmp,tmp},ec2_generated_1=()=>{var tmp=require("./ec2.generated");return ec2_generated_1=()=>tmp,tmp},cxschema=()=>{var tmp=require("../../cloud-assembly-schema");return cxschema=()=>tmp,tmp},core_1=()=>{var tmp=require("../../core");return core_1=()=>tmp,tmp},metadata_resource_1=()=>{var tmp=require("../../core/lib/metadata-resource");return metadata_resource_1=()=>tmp,tmp},prop_injectable_1=()=>{var tmp=require("../../core/lib/prop-injectable");return prop_injectable_1=()=>tmp,tmp},AddressFamily;(function(AddressFamily2){AddressFamily2.IP_V4="IPv4",AddressFamily2.IP_V6="IPv6"})(AddressFamily||(exports.AddressFamily=AddressFamily={}));class PrefixListBase extends core_1().Resource{constructor(){super(...arguments),this.connections=new(connections_1()).Connections({peer:this}),this.canInlineRule=!1}get uniqueId(){return this.prefixListId}toIngressRuleConfig(){return{sourcePrefixListId:this.prefixListId}}toEgressRuleConfig(){return{destinationPrefixListId:this.prefixListId}}}let PrefixList=class PrefixList2 extends PrefixListBase{static fromPrefixListId(scope,id,prefixListId){class Import extends PrefixListBase{constructor(){super(...arguments),this.prefixListId=prefixListId}}return new Import(scope,id)}static fromLookup(scope,id,options){try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_PrefixListLookupOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromLookup),error}if(core_1().Token.isUnresolved(options.prefixListName))throw new(core_1()).ValidationError("All arguments to look up a managed prefix list must be concrete (no Tokens)",scope);const dummyResponse={PrefixListId:"pl-xxxxxxxx"},response=core_1().ContextProvider.getValue(scope,{provider:cxschema().ContextProvider.CC_API_PROVIDER,props:{typeName:"AWS::EC2::PrefixList",propertyMatch:{PrefixListName:options.prefixListName,...options.ownerId?{OwnerId:options.ownerId}:void 0,...options.addressFamily?{AddressFamily:options.addressFamily}:void 0},propertiesToReturn:["PrefixListId"],expectedMatchCount:"exactly-one"},dummyValue:[dummyResponse]}).value;if(response.length!==1)throw new(core_1()).ValidationError("Unexpected response received from the context provider. Please clear out the context key using `cdk context --remove` and try again.",scope);const prefixList=response[0];return this.fromPrefixListId(scope,id,prefixList.PrefixListId)}constructor(scope,id,props){super(scope,id,{physicalName:props?.prefixListName??core_1().Lazy.string({produce:()=>core_1().Names.uniqueResourceName(this,{maxLength:255,allowedSpecialCharacters:".-_"})})});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_ec2_PrefixListProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,PrefixList2),error}if((0,metadata_resource_1().addConstructMetadata)(this,props),props?.prefixListName){if(props.prefixListName.startsWith("com.amazonaws"))throw new(core_1()).ValidationError("The name cannot start with 'com.amazonaws.'",this);if(props.prefixListName.length>255)throw new(core_1()).ValidationError("Lengths exceeding 255 characters cannot be set.",this)}this.prefixListName=this.physicalName;let defaultMaxEntries=1;if(props?.entries&&props.entries.length>0){const entries=props.entries;if(props?.addressFamily===AddressFamily.IP_V6){const ipv6Regex=/^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$/i;for(const entry of entries)if(!ipv6Regex.test(entry.cidr))throw new(core_1()).ValidationError(`Invalid IPv6 address range: ${entry.cidr}`,this)}else{const ipv4Regex=/^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$/i;for(const entry of entries)if(!ipv4Regex.test(entry.cidr))throw new(core_1()).ValidationError(`Invalid IPv4 address range: ${entry.cidr}`,this)}defaultMaxEntries=props.entries.length}const prefixList=new(ec2_generated_1()).CfnPrefixList(this,"Resource",{addressFamily:props?.addressFamily||AddressFamily.IP_V4,maxEntries:props?.maxEntries||defaultMaxEntries,prefixListName:this.prefixListName,entries:props?.entries||[]});this.prefixListId=prefixList.attrPrefixListId,this.prefixListArn=prefixList.attrArn,this.ownerId=prefixList.attrOwnerId,this.version=prefixList.attrVersion,this.addressFamily=prefixList.addressFamily}};exports.PrefixList=PrefixList,_a=JSII_RTTI_SYMBOL_1,PrefixList[_a]={fqn:"aws-cdk-lib.aws_ec2.PrefixList",version:"2.202.0"},PrefixList.PROPERTY_INJECTION_ID="aws-cdk-lib.aws-ec2.PrefixList",exports.PrefixList=PrefixList=__decorate([prop_injectable_1().propertyInjectable],PrefixList);
;