Skip to content

Commit

Permalink
Merge pull request #28651 from mattburgess/opensearchserverless-vpc-e…
Browse files Browse the repository at this point in the history
…ndpoint-resource

Add aws_opensearchserverless_vpc_endpoint resource
  • Loading branch information
johnsonaj authored Jun 14, 2023
2 parents 32d291a + 9cfa11b commit 75d4657
Show file tree
Hide file tree
Showing 8 changed files with 886 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .changelog/28651.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:new-resource
aws_opensearchserverless_vpc_endpoint
```
1 change: 1 addition & 0 deletions internal/service/opensearchserverless/exports_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ var (
ResourceCollection = newResourceCollection
ResourceAccessPolicy = newResourceAccessPolicy
ResourceSecurityPolicy = newResourceSecurityPolicy
ResourceVPCEndpoint = newResourceVPCEndpoint
)
25 changes: 25 additions & 0 deletions internal/service/opensearchserverless/find.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,28 @@ func FindSecurityPolicyByNameAndType(ctx context.Context, conn *opensearchserver

return out.SecurityPolicyDetail, nil
}

func FindVPCEndpointByID(ctx context.Context, conn *opensearchserverless.Client, id string) (*types.VpcEndpointDetail, error) {
in := &opensearchserverless.BatchGetVpcEndpointInput{
Ids: []string{id},
}
out, err := conn.BatchGetVpcEndpoint(ctx, in)

if err != nil {
var nfe *types.ResourceNotFoundException
if errors.As(err, &nfe) {
return nil, &retry.NotFoundError{
LastError: err,
LastRequest: in,
}
}

return nil, err
}

if out == nil || out.VpcEndpointDetails == nil || len(out.VpcEndpointDetails) == 0 {
return nil, tfresource.NewEmptyResultError(in)
}

return &out.VpcEndpointDetails[0], nil
}
3 changes: 3 additions & 0 deletions internal/service/opensearchserverless/service_package_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

48 changes: 48 additions & 0 deletions internal/service/opensearchserverless/sweep.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ func init() {
Name: "aws_opensearchserverless_security_policy",
F: sweepSecurityPolicies,
})
resource.AddTestSweepers("aws_opensearchserverless_vpc_endpoint", &resource.Sweeper{
Name: "aws_opensearchserverless_vpc_endpoint",
F: sweepVPCEndpoints,
})
}

func sweepAccessPolicies(region string) error {
Expand Down Expand Up @@ -201,3 +205,47 @@ func sweepSecurityPolicies(region string) error {

return errs.ErrorOrNil()
}

func sweepVPCEndpoints(region string) error {
ctx := sweep.Context(region)
client, err := sweep.SharedRegionalSweepClient(region)

if err != nil {
return fmt.Errorf("error getting client: %w", err)
}

conn := client.(*conns.AWSClient).OpenSearchServerlessClient(ctx)
sweepResources := make([]sweep.Sweepable, 0)
var errs *multierror.Error
input := &opensearchserverless.ListVpcEndpointsInput{}

pages := opensearchserverless.NewListVpcEndpointsPaginator(conn, input)

for pages.HasMorePages() {
page, err := pages.NextPage(ctx)
if sweep.SkipSweepError(err) {
log.Printf("[WARN] Skipping OpenSearch Serverless VPC Endpoints sweep for %s: %s", region, err)
return nil
}
if err != nil {
return fmt.Errorf("error retrieving OpenSearch Serverless VPC Endpoints: %w", err)
}

for _, endpoint := range page.VpcEndpointSummaries {
id := aws.ToString(endpoint.Id)

log.Printf("[INFO] Deleting OpenSearch Serverless VPC Endpoint: %s", id)
sweepResources = append(sweepResources, sweep.NewSweepFrameworkResource(newResourceVPCEndpoint, id, client))
}
}

if err := sweep.SweepOrchestratorWithContext(ctx, sweepResources); err != nil {
errs = multierror.Append(errs, fmt.Errorf("error sweeping OpenSearch Serverless VPC Endpoints for %s: %w", region, err))
}
if sweep.SkipSweepError(err) {
log.Printf("[WARN] Skipping OpenSearch Serverless VPC Endpoint sweep for %s: %s", region, errs)
return nil
}

return errs.ErrorOrNil()
}
Loading

0 comments on commit 75d4657

Please sign in to comment.