public async Task deleteSecurityGroupIPPermissionsAsync(string vpcId)
{
var describeResponse = await _ec2Client.DescribeSecurityGroupsAsync(new DescribeSecurityGroupsRequest{
Filters = { new Filter("vpc-id", new List<string> { vpcId }) }
});
foreach (var group in describeResponse.SecurityGroups)
{
if (group.IpPermissions.Count != 0)
{
await _ec2Client.RevokeSecurityGroupIngressAsync(new RevokeSecurityGroupIngressRequest
{
GroupId = group.GroupId,
IpPermissions = group.IpPermissions
});
}
if (group.IpPermissionsEgress.Count != 0)
{
await _ec2Client.RevokeSecurityGroupEgressAsync(new RevokeSecurityGroupEgressRequest{
GroupId = group.GroupId,
IpPermissions = group.IpPermissionsEgress
});
}
}
foreach (var group in describeResponse.SecurityGroups)
{
if (string.Compare(group.GroupName, "default") != 0)
{
await _ec2Client.DeleteSecurityGroupAsync(new DeleteSecurityGroupRequest { GroupId = group.GroupId });
}
}
}