Skip to content

Commit

Permalink
Merge pull request #541 from apgrucza/apigateway-domainnames-private
Browse files Browse the repository at this point in the history
fix(apigateway-domainnames): support private apis
  • Loading branch information
ekristen authored Feb 5, 2025
2 parents 37c6576 + 50e0b74 commit 6c5463e
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 15 deletions.
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ require (
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.31 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.27 // indirect
github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.10 // indirect
github.com/aws/aws-sdk-go-v2/service/appsync v1.42.1 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.8 // indirect
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.26 h1:GeNJsIFHB+WW5ap2Tec4K6dzcVT
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.26/go.mod h1:zfgMpwHDXX2WGoG84xG2H+ZlPTkJUU4YUvx2svLQYWo=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.27 h1:AmB5QxnD+fBFrg9LcqzkgF/CaYvMyU/BTlejG4t1S7Q=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.27/go.mod h1:Sai7P3xTiyv9ZUYO3IFxMnmiIP759/67iQbU4kdmkyU=
github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.10 h1:P8boDrgHS1yivvkKbEzjD9ZvFnCXGVDFJM3vMbLsnWw=
github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.10/go.mod h1:ptFFl07Vr2Ckxf5CnpKwXUDUmcHZiVaVKBxsrI+WVYg=
github.com/aws/aws-sdk-go-v2/service/appsync v1.42.1 h1:LHvnj7gkCWDa2j+USYtC5pLLIZfuBCfJRUjk0S1cA30=
github.com/aws/aws-sdk-go-v2/service/appsync v1.42.1/go.mod h1:cILlhPBarV3U76C3W2jR2FOF4uh24kWCAQXEGT31r6s=
github.com/aws/aws-sdk-go-v2/service/iam v1.38.3 h1:2sFIoFzU1IEL9epJWubJm9Dhrn45aTNEJuwsesaCGnk=
Expand Down
39 changes: 24 additions & 15 deletions resources/apigateway-domainnames.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@ package resources
import (
"context"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/apigateway"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/service/apigateway"

"github.com/ekristen/libnuke/pkg/registry"
"github.com/ekristen/libnuke/pkg/resource"
"github.com/ekristen/libnuke/pkg/types"

"github.com/ekristen/aws-nuke/v3/pkg/nuke"
)
Expand All @@ -25,25 +26,27 @@ func init() {

type APIGatewayDomainNameLister struct{}

func (l *APIGatewayDomainNameLister) List(_ context.Context, o interface{}) ([]resource.Resource, error) {
func (l *APIGatewayDomainNameLister) List(ctx context.Context, o interface{}) ([]resource.Resource, error) {
opts := o.(*nuke.ListerOpts)
svc := apigateway.New(opts.Session)
svc := apigateway.NewFromConfig(*opts.Config)
var resources []resource.Resource

params := &apigateway.GetDomainNamesInput{
Limit: aws.Int64(100),
Limit: aws.Int32(100),
}

for {
output, err := svc.GetDomainNames(params)
output, err := svc.GetDomainNames(ctx, params)
if err != nil {
return nil, err
}

for _, item := range output.Items {
for i := range output.Items {
item := &output.Items[i]
resources = append(resources, &APIGatewayDomainName{
svc: svc,
domainName: item.DomainName,
svc: svc,
DomainName: item.DomainName,
DomainNameID: item.DomainNameId,
})
}

Expand All @@ -58,18 +61,24 @@ func (l *APIGatewayDomainNameLister) List(_ context.Context, o interface{}) ([]r
}

type APIGatewayDomainName struct {
svc *apigateway.APIGateway
domainName *string
svc *apigateway.Client
DomainName *string
DomainNameID *string
}

func (f *APIGatewayDomainName) Remove(_ context.Context) error {
_, err := f.svc.DeleteDomainName(&apigateway.DeleteDomainNameInput{
DomainName: f.domainName,
func (f *APIGatewayDomainName) Remove(ctx context.Context) error {
_, err := f.svc.DeleteDomainName(ctx, &apigateway.DeleteDomainNameInput{
DomainName: f.DomainName,
DomainNameId: f.DomainNameID,
})

return err
}

func (f *APIGatewayDomainName) Properties() types.Properties {
return types.NewPropertiesFromStruct(f)
}

func (f *APIGatewayDomainName) String() string {
return *f.domainName
return *f.DomainName
}

0 comments on commit 6c5463e

Please sign in to comment.