Skip to content

Commit 04a7e5d

Browse files
authored
Merge pull request ekristen#602 from PeninaSchuss/feature/add-tags-for-APIGatewayDomainName-resource
feat: add tag support for APIGatewayDomainName resource
2 parents 7efd32f + 98894f5 commit 04a7e5d

File tree

1 file changed

+28
-10
lines changed

1 file changed

+28
-10
lines changed

resources/apigateway-domainnames.go renamed to resources/apigateway-domain-name.go

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ package resources
22

33
import (
44
"context"
5+
"fmt"
6+
7+
"github.com/gotidy/ptr"
58

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

911
"github.com/ekristen/libnuke/pkg/registry"
@@ -32,7 +34,7 @@ func (l *APIGatewayDomainNameLister) List(ctx context.Context, o interface{}) ([
3234
var resources []resource.Resource
3335

3436
params := &apigateway.GetDomainNamesInput{
35-
Limit: aws.Int32(100),
37+
Limit: ptr.Int32(100),
3638
}
3739

3840
for {
@@ -43,10 +45,25 @@ func (l *APIGatewayDomainNameLister) List(ctx context.Context, o interface{}) ([
4345

4446
for i := range output.Items {
4547
item := &output.Items[i]
48+
49+
var tags map[string]string
50+
51+
// Get tags for the domain
52+
tagsOutput, err := svc.GetTags(ctx, &apigateway.GetTagsInput{
53+
ResourceArn: ptr.String(fmt.Sprintf("arn:aws:apigateway:%s::/domainnames/%s", opts.Config.Region, *item.DomainName)),
54+
})
55+
if err != nil {
56+
opts.Logger.WithError(err).Error("failed to get tags for domain")
57+
}
58+
if tagsOutput.Tags != nil {
59+
tags = tagsOutput.Tags
60+
}
61+
4662
resources = append(resources, &APIGatewayDomainName{
4763
svc: svc,
4864
DomainName: item.DomainName,
4965
DomainNameID: item.DomainNameId,
66+
Tags: tags,
5067
})
5168
}
5269

@@ -64,21 +81,22 @@ type APIGatewayDomainName struct {
6481
svc *apigateway.Client
6582
DomainName *string
6683
DomainNameID *string
84+
Tags map[string]string
6785
}
6886

69-
func (f *APIGatewayDomainName) Remove(ctx context.Context) error {
70-
_, err := f.svc.DeleteDomainName(ctx, &apigateway.DeleteDomainNameInput{
71-
DomainName: f.DomainName,
72-
DomainNameId: f.DomainNameID,
87+
func (r *APIGatewayDomainName) Remove(ctx context.Context) error {
88+
_, err := r.svc.DeleteDomainName(ctx, &apigateway.DeleteDomainNameInput{
89+
DomainName: r.DomainName,
90+
DomainNameId: r.DomainNameID,
7391
})
7492

7593
return err
7694
}
7795

78-
func (f *APIGatewayDomainName) Properties() types.Properties {
79-
return types.NewPropertiesFromStruct(f)
96+
func (r *APIGatewayDomainName) Properties() types.Properties {
97+
return types.NewPropertiesFromStruct(r)
8098
}
8199

82-
func (f *APIGatewayDomainName) String() string {
83-
return *f.DomainName
100+
func (r *APIGatewayDomainName) String() string {
101+
return *r.DomainName
84102
}

0 commit comments

Comments
 (0)