private void CreateSecurityGroups() { if (CdkOptions == null || CdkOptions.SecurityGroups?.Any() != true) { return; } foreach (var securityGroupOption in CdkOptions.SecurityGroups) { if (securityGroupOption.LocateInsteadOfCreate) { var securityGroup = AwsCdkHandler.LocateSecurityGroupById(securityGroupOption.SecurityGroupId, securityGroupOption.SecurityGroupId); StackResources.SecurityGroups.Add(securityGroupOption.Id, securityGroup); } else { var vpcResource = StackResources.Vpcs.FirstOrDefault(v => v.Key == securityGroupOption.VpcId); var vpc = vpcResource.Value ?? AwsCdkHandler.LocateVpc(securityGroupOption.VpcId, $"The Vpc id {securityGroupOption.VpcId} of the security group {securityGroupOption.SecurityGroupName} was not found"); var securityGroup = AwsCdkHandler.AddSecurityGroup(securityGroupOption.SecurityGroupName, securityGroupOption.SecurityGroupName, vpc, securityGroupOption.AllowAllOutbound, securityGroupOption.DisableInlineRules); AddSecurityGroupRules(securityGroupOption, securityGroup, SecurityGroupRuleType.IngressRule); AddSecurityGroupRules(securityGroupOption, securityGroup, SecurityGroupRuleType.EgressRule); StackResources.SecurityGroups.Add(securityGroupOption.Id, securityGroup); } } }