UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 1.59 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AcceleratorSecurityGroupPeer=void 0;var ec2=()=>{var tmp=require("../../aws-ec2");return ec2=()=>tmp,tmp},custom_resources_1=()=>{var tmp=require("../../custom-resources");return custom_resources_1=()=>tmp,tmp};class AcceleratorSecurityGroupPeer{static fromVpc(scope,id,vpc,endpointGroup){const globalAcceleratorSGName="GlobalAccelerator",ec2ResponseSGIdField="SecurityGroups.0.GroupId",lookupAcceleratorSGCustomResource=new(custom_resources_1()).AwsCustomResource(scope,id+"CustomResource",{onUpdate:{service:"EC2",action:"describeSecurityGroups",parameters:{Filters:[{Name:"group-name",Values:[globalAcceleratorSGName]},{Name:"vpc-id",Values:[vpc.vpcId]}]},physicalResourceId:custom_resources_1().PhysicalResourceId.fromResponse(ec2ResponseSGIdField)},policy:custom_resources_1().AwsCustomResourcePolicy.fromSdkCalls({resources:custom_resources_1().AwsCustomResourcePolicy.ANY_RESOURCE}),installLatestAwsSdk:!1});return lookupAcceleratorSGCustomResource.node.addDependency(endpointGroup.node.defaultChild),new AcceleratorSecurityGroupPeer(lookupAcceleratorSGCustomResource.getResponseField(ec2ResponseSGIdField))}constructor(securityGroupId){this.securityGroupId=securityGroupId,this.canInlineRule=!1,this.connections=new(ec2()).Connections({peer:this}),this.uniqueId="GlobalAcceleratorGroup"}toIngressRuleConfig(){return{sourceSecurityGroupId:this.securityGroupId}}toEgressRuleConfig(){return{destinationSecurityGroupId:this.securityGroupId}}}exports.AcceleratorSecurityGroupPeer=AcceleratorSecurityGroupPeer;