public async Task terminateVPCInstanceAsync(string vpcid)
{
var ids = new List<string>();
var response = await _ec2Client.DescribeInstancesAsync(new DescribeInstancesRequest {
Filters = { new Filter("vpc-id", new List<string>{ vpcid })}
});
foreach (var reservation in response.Reservations)
{
foreach (var instance in reservation.Instances)
{
if (!string.IsNullOrEmpty(instance.SubnetId))
{
await _ec2Client.TerminateInstancesAsync(new TerminateInstancesRequest { InstanceIds = new List<string> { instance.InstanceId } });
ids.Add(instance.InstanceId);
}
}
}
foreach (var instanceId in ids)
{
await waitForInstanceToTransitionToStateAsync(instanceId, "terminated");
}
}