aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 12.7 kB
JavaScript
;var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l,_m,_o,_p,_q;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CrossAccountZoneDelegationRecord=exports.ZoneDelegationRecord=exports.DsRecord=exports.NsRecord=exports.MxRecord=exports.CaaAmazonRecord=exports.CaaRecord=exports.CaaTag=exports.SrvRecord=exports.TxtRecord=exports.CnameRecord=exports.AaaaRecord=exports.ARecord=exports.AddressRecordTarget=exports.RecordSet=exports.RecordTarget=exports.RecordType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),path=require("path"),iam=require("../../aws-iam"),core_1=require("../../core"),constructs_1=require("constructs"),route53_generated_1=require("./route53.generated"),util_1=require("./util"),CROSS_ACCOUNT_ZONE_DELEGATION_RESOURCE_TYPE="Custom::CrossAccountZoneDelegation",DELETE_EXISTING_RECORD_SET_RESOURCE_TYPE="Custom::DeleteExistingRecordSet",USE_REGIONAL_STS_ENDPOINT_CONTEXT_KEY="@aws-cdk/aws-route53:useRegionalStsEndpoint";var RecordType;(function(RecordType2){RecordType2.A="A",RecordType2.AAAA="AAAA",RecordType2.CAA="CAA",RecordType2.CNAME="CNAME",RecordType2.DS="DS",RecordType2.MX="MX",RecordType2.NAPTR="NAPTR",RecordType2.NS="NS",RecordType2.PTR="PTR",RecordType2.SOA="SOA",RecordType2.SPF="SPF",RecordType2.SRV="SRV",RecordType2.TXT="TXT"})(RecordType=exports.RecordType||(exports.RecordType={}));class RecordTarget{constructor(values,aliasTarget){this.values=values,this.aliasTarget=aliasTarget;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_IAliasRecordTarget(aliasTarget)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,RecordTarget),error}}static fromValues(...values){return new RecordTarget(values)}static fromAlias(aliasTarget){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_IAliasRecordTarget(aliasTarget)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromAlias),error}return new RecordTarget(void 0,aliasTarget)}static fromIpAddresses(...ipAddresses){return RecordTarget.fromValues(...ipAddresses)}}exports.RecordTarget=RecordTarget,_a=JSII_RTTI_SYMBOL_1,RecordTarget[_a]={fqn:"aws-cdk-lib.aws_route53.RecordTarget",version:"2.70.0"};class RecordSet extends core_1.Resource{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_RecordSetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,RecordSet),error}const ttl=props.target.aliasTarget?void 0:((props.ttl&&props.ttl.toSeconds())??1800).toString(),recordName=util_1.determineFullyQualifiedDomainName(props.recordName||props.zone.zoneName,props.zone),recordSet=new route53_generated_1.CfnRecordSet(this,"Resource",{hostedZoneId:props.zone.hostedZoneId,name:recordName,type:props.recordType,resourceRecords:props.target.values,aliasTarget:props.target.aliasTarget&&props.target.aliasTarget.bind(this,props.zone),ttl,comment:props.comment});if(this.domainName=recordSet.ref,props.deleteExisting){const provider=core_1.CustomResourceProvider.getOrCreateProvider(this,DELETE_EXISTING_RECORD_SET_RESOURCE_TYPE,{codeDirectory:path.join(__dirname,"delete-existing-record-set-handler"),runtime:core_1.CustomResourceProviderRuntime.NODEJS_14_X,policyStatements:[{Effect:"Allow",Action:"route53:GetChange",Resource:"*"}]});provider.addToRolePolicy({Effect:"Allow",Action:"route53:ListResourceRecordSets",Resource:props.zone.hostedZoneArn}),provider.addToRolePolicy({Effect:"Allow",Action:"route53:ChangeResourceRecordSets",Resource:props.zone.hostedZoneArn,Condition:{"ForAllValues:StringEquals":{"route53:ChangeResourceRecordSetsRecordTypes":[props.recordType],"route53:ChangeResourceRecordSetsActions":["DELETE"]}}});const customResource=new core_1.CustomResource(this,"DeleteExistingRecordSetCustomResource",{resourceType:DELETE_EXISTING_RECORD_SET_RESOURCE_TYPE,serviceToken:provider.serviceToken,properties:{HostedZoneId:props.zone.hostedZoneId,RecordName:recordName,RecordType:props.recordType}});recordSet.node.addDependency(customResource)}}}exports.RecordSet=RecordSet,_b=JSII_RTTI_SYMBOL_1,RecordSet[_b]={fqn:"aws-cdk-lib.aws_route53.RecordSet",version:"2.70.0"};class AddressRecordTarget extends RecordTarget{}exports.AddressRecordTarget=AddressRecordTarget,_c=JSII_RTTI_SYMBOL_1,AddressRecordTarget[_c]={fqn:"aws-cdk-lib.aws_route53.AddressRecordTarget",version:"2.70.0"};class ARecord extends RecordSet{constructor(scope,id,props){super(scope,id,{...props,recordType:RecordType.A,target:props.target});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_ARecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,ARecord),error}}}exports.ARecord=ARecord,_d=JSII_RTTI_SYMBOL_1,ARecord[_d]={fqn:"aws-cdk-lib.aws_route53.ARecord",version:"2.70.0"};class AaaaRecord extends RecordSet{constructor(scope,id,props){super(scope,id,{...props,recordType:RecordType.AAAA,target:props.target});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_AaaaRecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,AaaaRecord),error}}}exports.AaaaRecord=AaaaRecord,_e=JSII_RTTI_SYMBOL_1,AaaaRecord[_e]={fqn:"aws-cdk-lib.aws_route53.AaaaRecord",version:"2.70.0"};class CnameRecord extends RecordSet{constructor(scope,id,props){super(scope,id,{...props,recordType:RecordType.CNAME,target:RecordTarget.fromValues(props.domainName)});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_CnameRecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CnameRecord),error}}}exports.CnameRecord=CnameRecord,_f=JSII_RTTI_SYMBOL_1,CnameRecord[_f]={fqn:"aws-cdk-lib.aws_route53.CnameRecord",version:"2.70.0"};class TxtRecord extends RecordSet{constructor(scope,id,props){super(scope,id,{...props,recordType:RecordType.TXT,target:RecordTarget.fromValues(...props.values.map(v=>formatTxt(v)))});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_TxtRecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,TxtRecord),error}}}exports.TxtRecord=TxtRecord,_g=JSII_RTTI_SYMBOL_1,TxtRecord[_g]={fqn:"aws-cdk-lib.aws_route53.TxtRecord",version:"2.70.0"};function formatTxt(string){const result=[];let idx=0;for(;idx<string.length;)result.push(string.slice(idx,idx+=255));return result.map(r=>JSON.stringify(r)).join("")}class SrvRecord extends RecordSet{constructor(scope,id,props){super(scope,id,{...props,recordType:RecordType.SRV,target:RecordTarget.fromValues(...props.values.map(v=>`${v.priority} ${v.weight} ${v.port} ${v.hostName}`))});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_SrvRecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,SrvRecord),error}}}exports.SrvRecord=SrvRecord,_h=JSII_RTTI_SYMBOL_1,SrvRecord[_h]={fqn:"aws-cdk-lib.aws_route53.SrvRecord",version:"2.70.0"};var CaaTag;(function(CaaTag2){CaaTag2.ISSUE="issue",CaaTag2.ISSUEWILD="issuewild",CaaTag2.IODEF="iodef"})(CaaTag=exports.CaaTag||(exports.CaaTag={}));class CaaRecord extends RecordSet{constructor(scope,id,props){super(scope,id,{...props,recordType:RecordType.CAA,target:RecordTarget.fromValues(...props.values.map(v=>`${v.flag} ${v.tag} "${v.value}"`))});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_CaaRecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CaaRecord),error}}}exports.CaaRecord=CaaRecord,_j=JSII_RTTI_SYMBOL_1,CaaRecord[_j]={fqn:"aws-cdk-lib.aws_route53.CaaRecord",version:"2.70.0"};class CaaAmazonRecord extends CaaRecord{constructor(scope,id,props){super(scope,id,{...props,values:[{flag:0,tag:CaaTag.ISSUE,value:"amazon.com"}]});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_CaaAmazonRecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CaaAmazonRecord),error}}}exports.CaaAmazonRecord=CaaAmazonRecord,_k=JSII_RTTI_SYMBOL_1,CaaAmazonRecord[_k]={fqn:"aws-cdk-lib.aws_route53.CaaAmazonRecord",version:"2.70.0"};class MxRecord extends RecordSet{constructor(scope,id,props){super(scope,id,{...props,recordType:RecordType.MX,target:RecordTarget.fromValues(...props.values.map(v=>`${v.priority} ${v.hostName}`))});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_MxRecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,MxRecord),error}}}exports.MxRecord=MxRecord,_l=JSII_RTTI_SYMBOL_1,MxRecord[_l]={fqn:"aws-cdk-lib.aws_route53.MxRecord",version:"2.70.0"};class NsRecord extends RecordSet{constructor(scope,id,props){super(scope,id,{...props,recordType:RecordType.NS,target:RecordTarget.fromValues(...props.values)});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_NsRecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,NsRecord),error}}}exports.NsRecord=NsRecord,_m=JSII_RTTI_SYMBOL_1,NsRecord[_m]={fqn:"aws-cdk-lib.aws_route53.NsRecord",version:"2.70.0"};class DsRecord extends RecordSet{constructor(scope,id,props){super(scope,id,{...props,recordType:RecordType.DS,target:RecordTarget.fromValues(...props.values)});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_DsRecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,DsRecord),error}}}exports.DsRecord=DsRecord,_o=JSII_RTTI_SYMBOL_1,DsRecord[_o]={fqn:"aws-cdk-lib.aws_route53.DsRecord",version:"2.70.0"};class ZoneDelegationRecord extends RecordSet{constructor(scope,id,props){super(scope,id,{...props,recordType:RecordType.NS,target:RecordTarget.fromValues(...core_1.Token.isUnresolved(props.nameServers)?props.nameServers:props.nameServers.map(ns=>core_1.Token.isUnresolved(ns)||ns.endsWith(".")?ns:`${ns}.`)),ttl:props.ttl||core_1.Duration.days(2)});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_ZoneDelegationRecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,ZoneDelegationRecord),error}}}exports.ZoneDelegationRecord=ZoneDelegationRecord,_p=JSII_RTTI_SYMBOL_1,ZoneDelegationRecord[_p]={fqn:"aws-cdk-lib.aws_route53.ZoneDelegationRecord",version:"2.70.0"};class CrossAccountZoneDelegationRecord extends constructs_1.Construct{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_route53_CrossAccountZoneDelegationRecordProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CrossAccountZoneDelegationRecord),error}if(!props.parentHostedZoneName&&!props.parentHostedZoneId)throw Error("At least one of parentHostedZoneName or parentHostedZoneId is required");if(props.parentHostedZoneName&&props.parentHostedZoneId)throw Error("Only one of parentHostedZoneName and parentHostedZoneId is supported");const provider=core_1.CustomResourceProvider.getOrCreateProvider(this,CROSS_ACCOUNT_ZONE_DELEGATION_RESOURCE_TYPE,{codeDirectory:path.join(__dirname,"cross-account-zone-delegation-handler"),runtime:core_1.CustomResourceProviderRuntime.NODEJS_14_X}),addToPrinciplePolicyResult=iam.Role.fromRoleArn(this,"cross-account-zone-delegation-handler-role",provider.roleArn).addToPrincipalPolicy(new iam.PolicyStatement({effect:iam.Effect.ALLOW,actions:["sts:AssumeRole"],resources:[props.delegationRole.roleArn]})),useRegionalStsEndpoint=this.node.tryGetContext(USE_REGIONAL_STS_ENDPOINT_CONTEXT_KEY),customResource=new core_1.CustomResource(this,"CrossAccountZoneDelegationCustomResource",{resourceType:CROSS_ACCOUNT_ZONE_DELEGATION_RESOURCE_TYPE,serviceToken:provider.serviceToken,removalPolicy:props.removalPolicy,properties:{AssumeRoleArn:props.delegationRole.roleArn,ParentZoneName:props.parentHostedZoneName,ParentZoneId:props.parentHostedZoneId,DelegatedZoneName:props.delegatedZone.zoneName,DelegatedZoneNameServers:props.delegatedZone.hostedZoneNameServers,TTL:(props.ttl||core_1.Duration.days(2)).toSeconds(),UseRegionalStsEndpoint:useRegionalStsEndpoint?"true":void 0}});addToPrinciplePolicyResult.policyDependable&&customResource.node.addDependency(addToPrinciplePolicyResult.policyDependable)}}exports.CrossAccountZoneDelegationRecord=CrossAccountZoneDelegationRecord,_q=JSII_RTTI_SYMBOL_1,CrossAccountZoneDelegationRecord[_q]={fqn:"aws-cdk-lib.aws_route53.CrossAccountZoneDelegationRecord",version:"2.70.0"};