aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 1.59 kB
JavaScript
;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{securityGroupId;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))}canInlineRule=!1;connections=new(ec2()).Connections({peer:this});uniqueId="GlobalAcceleratorGroup";constructor(securityGroupId){this.securityGroupId=securityGroupId}toIngressRuleConfig(){return{sourceSecurityGroupId:this.securityGroupId}}toEgressRuleConfig(){return{destinationSecurityGroupId:this.securityGroupId}}}exports.AcceleratorSecurityGroupPeer=AcceleratorSecurityGroupPeer;