Skip to content

Commit 52f8a85

Browse files
author
Jeff Carter
committed
add new CFN resource types
1 parent 86791f1 commit 52f8a85

12 files changed

+337
-2
lines changed

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ require (
7575
github.com/aws/aws-sdk-go-v2/service/servicediscovery v0.29.0
7676
github.com/aws/aws-sdk-go-v2/service/ses v0.29.0
7777
github.com/aws/aws-sdk-go-v2/service/sfn v0.29.0
78+
github.com/aws/aws-sdk-go-v2/service/signer v0.29.0
7879
github.com/aws/aws-sdk-go-v2/service/sns v0.29.0
7980
github.com/aws/aws-sdk-go-v2/service/sqs v0.29.0
8081
github.com/aws/aws-sdk-go-v2/service/ssm v0.29.0

go.sum

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ github.com/aws/aws-sdk-go-v2/service/ses v0.29.0 h1:ytUMd3eJNs7j8zBmKmRpsVFkE75K
153153
github.com/aws/aws-sdk-go-v2/service/ses v0.29.0/go.mod h1:F7uPgAARIG7nK5+lLzBOQfZ11lI2V38AsUQG84B6kCI=
154154
github.com/aws/aws-sdk-go-v2/service/sfn v0.29.0 h1:PIzooSmUAm6QLN8/9yAKKXSU7kT4ZjjXRKXuJ3bb0QU=
155155
github.com/aws/aws-sdk-go-v2/service/sfn v0.29.0/go.mod h1:JjiXTPhJgaaD+iKT7qv2KczbNuasqulYfStT03jX9Gg=
156+
github.com/aws/aws-sdk-go-v2/service/signer v0.29.0 h1:EokOEM1ET0voYMfVs5g+dT+f/pWrP+JJvA/ruooyXPU=
157+
github.com/aws/aws-sdk-go-v2/service/signer v0.29.0/go.mod h1:QzLpdTzhBazJz529b51MRVaWg7MS108yyYMSrhk/2Rk=
156158
github.com/aws/aws-sdk-go-v2/service/sns v0.29.0 h1:NyCT8xzu8qwFIbcgA3jBzHlwn6sxGMPJRpvW6G0k8do=
157159
github.com/aws/aws-sdk-go-v2/service/sns v0.29.0/go.mod h1:HTOOkUYXzZMwOkqc8KRYOKLmg8laYB9Tv7/KgXMNsLo=
158160
github.com/aws/aws-sdk-go-v2/service/sqs v0.29.0 h1:tNUvLwVXDkJB6esfAcYhW68P/q12Vt8B0GgjbmpWubQ=
@@ -192,6 +194,7 @@ github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
192194
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
193195
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
194196
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
197+
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
195198
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
196199
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
197200
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

lister/cloudfront_keygroup.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package lister
2+
3+
import (
4+
"sync"
5+
6+
"github.com/aws/aws-sdk-go-v2/aws"
7+
"github.com/aws/aws-sdk-go-v2/service/cloudfront"
8+
"github.com/trek10inc/awsets/context"
9+
"github.com/trek10inc/awsets/resource"
10+
)
11+
12+
var listCloudfrontKeyGroupOnce sync.Once
13+
14+
type AWSCloudfrontKeyGroup struct {
15+
}
16+
17+
func init() {
18+
i := AWSCloudfrontKeyGroup{}
19+
listers = append(listers, i)
20+
}
21+
22+
func (l AWSCloudfrontKeyGroup) Types() []resource.ResourceType {
23+
return []resource.ResourceType{resource.CloudFrontKeyGroup}
24+
}
25+
26+
func (l AWSCloudfrontKeyGroup) List(ctx context.AWSetsCtx) (*resource.Group, error) {
27+
svc := cloudfront.NewFromConfig(ctx.AWSCfg)
28+
29+
rg := resource.NewGroup()
30+
var outerErr error
31+
32+
listCloudfrontKeyGroupOnce.Do(func() {
33+
err := Paginator(func(nt *string) (*string, error) {
34+
res, err := svc.ListKeyGroups(ctx.Context, &cloudfront.ListKeyGroupsInput{
35+
MaxItems: aws.String("100"),
36+
Marker: nt,
37+
})
38+
if err != nil {
39+
return nil, err
40+
}
41+
if res.KeyGroupList == nil {
42+
return nil, nil
43+
}
44+
for _, item := range res.KeyGroupList.Items {
45+
kg := item.KeyGroup
46+
r := resource.NewGlobal(ctx, resource.CloudFrontKeyGroup, kg.Id, kg.Id, kg)
47+
48+
rg.AddResource(r)
49+
}
50+
return res.KeyGroupList.NextMarker, nil
51+
})
52+
if err != nil {
53+
outerErr = err
54+
}
55+
})
56+
57+
return rg, outerErr
58+
}

lister/cloudfront_publickey.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package lister
2+
3+
import (
4+
"sync"
5+
6+
"github.com/aws/aws-sdk-go-v2/aws"
7+
"github.com/aws/aws-sdk-go-v2/service/cloudfront"
8+
"github.com/trek10inc/awsets/context"
9+
"github.com/trek10inc/awsets/resource"
10+
)
11+
12+
var listCloudfrontPublicKeyOnce sync.Once
13+
14+
type AWSCloudfrontPublicKey struct {
15+
}
16+
17+
func init() {
18+
i := AWSCloudfrontPublicKey{}
19+
listers = append(listers, i)
20+
}
21+
22+
func (l AWSCloudfrontPublicKey) Types() []resource.ResourceType {
23+
return []resource.ResourceType{resource.CloudFrontPublicKey}
24+
}
25+
26+
func (l AWSCloudfrontPublicKey) List(ctx context.AWSetsCtx) (*resource.Group, error) {
27+
svc := cloudfront.NewFromConfig(ctx.AWSCfg)
28+
29+
rg := resource.NewGroup()
30+
var outerErr error
31+
32+
listCloudfrontPublicKeyOnce.Do(func() {
33+
err := Paginator(func(nt *string) (*string, error) {
34+
res, err := svc.ListPublicKeys(ctx.Context, &cloudfront.ListPublicKeysInput{
35+
MaxItems: aws.String("100"),
36+
Marker: nt,
37+
})
38+
if err != nil {
39+
return nil, err
40+
}
41+
if res.PublicKeyList == nil {
42+
return nil, nil
43+
}
44+
for _, item := range res.PublicKeyList.Items {
45+
r := resource.NewGlobal(ctx, resource.CloudFrontPublicKey, item.Id, item.Name, item)
46+
47+
rg.AddResource(r)
48+
}
49+
return res.PublicKeyList.NextMarker, nil
50+
})
51+
if err != nil {
52+
outerErr = err
53+
}
54+
})
55+
56+
return rg, outerErr
57+
}

lister/iot_topicrule.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ func (l AWSIoTTopicRule) Types() []resource.ResourceType {
2525
func (l AWSIoTTopicRule) List(ctx context.AWSetsCtx) (*resource.Group, error) {
2626

2727
svc := iot.NewFromConfig(ctx.AWSCfg)
28+
2829
rg := resource.NewGroup()
2930
err := Paginator(func(nt *string) (*string, error) {
3031
res, err := svc.ListTopicRules(ctx.Context, &iot.ListTopicRulesInput{

lister/iot_topicruledestination.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package lister
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/aws/aws-sdk-go-v2/aws"
7+
"github.com/aws/aws-sdk-go-v2/service/iot"
8+
"github.com/trek10inc/awsets/arn"
9+
"github.com/trek10inc/awsets/context"
10+
"github.com/trek10inc/awsets/resource"
11+
)
12+
13+
type AWSIoTTopicRuleDestination struct {
14+
}
15+
16+
func init() {
17+
i := AWSIoTTopicRuleDestination{}
18+
listers = append(listers, i)
19+
}
20+
21+
func (l AWSIoTTopicRuleDestination) Types() []resource.ResourceType {
22+
return []resource.ResourceType{resource.IotTopicRuleDestination}
23+
}
24+
25+
func (l AWSIoTTopicRuleDestination) List(ctx context.AWSetsCtx) (*resource.Group, error) {
26+
27+
svc := iot.NewFromConfig(ctx.AWSCfg)
28+
29+
rg := resource.NewGroup()
30+
err := Paginator(func(nt *string) (*string, error) {
31+
res, err := svc.ListTopicRuleDestinations(ctx.Context, &iot.ListTopicRuleDestinationsInput{
32+
MaxResults: aws.Int32(100),
33+
NextToken: nt,
34+
})
35+
if err != nil {
36+
return nil, fmt.Errorf("failed to list iot topic rule destinations: %w", err)
37+
}
38+
for _, destination := range res.DestinationSummaries {
39+
dArn := arn.ParseP(destination.Arn)
40+
r := resource.New(ctx, resource.IotTopicRuleDestination, dArn.ResourceId, dArn.ResourceId, destination)
41+
42+
rg.AddResource(r)
43+
}
44+
return res.NextToken, nil
45+
})
46+
return rg, err
47+
}

lister/signer_signingprofile.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package lister
2+
3+
import (
4+
"github.com/aws/aws-sdk-go-v2/aws"
5+
6+
"github.com/aws/aws-sdk-go-v2/service/signer"
7+
"github.com/trek10inc/awsets/arn"
8+
"github.com/trek10inc/awsets/context"
9+
"github.com/trek10inc/awsets/resource"
10+
)
11+
12+
type AWSSignerSigningProfile struct {
13+
}
14+
15+
func init() {
16+
i := AWSSignerSigningProfile{}
17+
listers = append(listers, i)
18+
}
19+
20+
func (l AWSSignerSigningProfile) Types() []resource.ResourceType {
21+
return []resource.ResourceType{resource.SignerSigningProfile}
22+
}
23+
24+
func (l AWSSignerSigningProfile) List(ctx context.AWSetsCtx) (*resource.Group, error) {
25+
svc := signer.NewFromConfig(ctx.AWSCfg)
26+
rg := resource.NewGroup()
27+
err := Paginator(func(nt *string) (*string, error) {
28+
res, err := svc.ListSigningProfiles(ctx.Context, &signer.ListSigningProfilesInput{
29+
MaxResults: aws.Int32(100),
30+
NextToken: nt,
31+
})
32+
if err != nil {
33+
return nil, err
34+
}
35+
for _, v := range res.Profiles {
36+
profileArn := arn.ParseP(v.Arn)
37+
r := resource.New(ctx, resource.SignerSigningProfile, profileArn.ResourceId, v.ProfileName, v)
38+
39+
rg.AddResource(r)
40+
}
41+
return res.NextToken, nil
42+
})
43+
return rg, err
44+
}

0 commit comments

Comments
 (0)