diff --git a/internal/service/ec2/sweep.go b/internal/service/ec2/sweep.go index e89f7cdbbc77..449fc237e916 100644 --- a/internal/service/ec2/sweep.go +++ b/internal/service/ec2/sweep.go @@ -393,6 +393,8 @@ func RegisterSweepers() { F: sweepVPCs, }) + awsv2.Register("aws_vpn_concentrator", sweepVPNConcentrators, "aws_vpn_connection") + resource.AddTestSweepers("aws_vpn_connection", &resource.Sweeper{ Name: "aws_vpn_connection", F: sweepVPNConnections, @@ -3236,3 +3238,32 @@ func sweepRouteServerPropagations(ctx context.Context, client *conns.AWSClient) return sweepResources, nil } + +func sweepVPNConcentrators(ctx context.Context, client *conns.AWSClient) ([]sweep.Sweepable, error) { + conn := client.EC2Client(ctx) + var input ec2.DescribeVpnConcentratorsInput + var sweepResources []sweep.Sweepable + + pages := ec2.NewDescribeVpnConcentratorsPaginator(conn, &input) + for pages.HasMorePages() { + page, err := pages.NextPage(ctx) + + if err != nil { + return nil, err + } + + for _, v := range page.VpnConcentrators { + vpnConcentratorID := aws.ToString(v.VpnConcentratorId) + + if state := aws.ToString(v.State); state == vpnConcentratorStateDeleted { + log.Printf("[INFO] Skipping VPN Concentrator %s: State=%s", vpnConcentratorID, state) + continue + } + + sweepResources = append(sweepResources, framework.NewSweepResource(newVPNConcentratorResource, client, + framework.NewAttribute("vpn_concentrator_id", vpnConcentratorID))) + } + } + + return sweepResources, nil +}