File tree Expand file tree Collapse file tree 1 file changed +66
-0
lines changed Expand file tree Collapse file tree 1 file changed +66
-0
lines changed Original file line number Diff line number Diff line change
1
+ package resources
2
+
3
+ import (
4
+ "github.com/aws/aws-sdk-go/aws/session"
5
+ "github.com/aws/aws-sdk-go/service/cloudfront"
6
+ "github.com/rebuy-de/aws-nuke/v2/pkg/types"
7
+ )
8
+
9
+ type CloudFrontOriginAccessControl struct {
10
+ svc * cloudfront.CloudFront
11
+ ID * string
12
+ }
13
+
14
+ func init () {
15
+ register ("CloudFrontOriginAccessControl" , ListCloudFrontOriginAccessControls )
16
+ }
17
+
18
+ func ListCloudFrontOriginAccessControls (sess * session.Session ) ([]Resource , error ) {
19
+ svc := cloudfront .New (sess )
20
+ resources := []Resource {}
21
+ params := & cloudfront.ListOriginAccessControlsInput {}
22
+
23
+ for {
24
+ resp , err := svc .ListOriginAccessControls (params )
25
+ if err != nil {
26
+ return nil , err
27
+ }
28
+
29
+ for _ , item := range resp .OriginAccessControlList .Items {
30
+ resources = append (resources , & CloudFrontOriginAccessControl {
31
+ svc : svc ,
32
+ ID : item .Id ,
33
+ })
34
+ }
35
+
36
+ if ! * resp .OriginAccessControlList .IsTruncated {
37
+ break
38
+ }
39
+
40
+ params .Marker = resp .OriginAccessControlList .NextMarker
41
+ }
42
+
43
+ return resources , nil
44
+ }
45
+
46
+ func (f * CloudFrontOriginAccessControl ) Remove () error {
47
+ resp , err := f .svc .GetOriginAccessControl (& cloudfront.GetOriginAccessControlInput {
48
+ Id : f .ID ,
49
+ })
50
+ if err != nil {
51
+ return err
52
+ }
53
+
54
+ _ , err = f .svc .DeleteOriginAccessControl (& cloudfront.DeleteOriginAccessControlInput {
55
+ Id : f .ID ,
56
+ IfMatch : resp .ETag ,
57
+ })
58
+
59
+ return err
60
+ }
61
+
62
+ func (f * CloudFrontOriginAccessControl ) Properties () types.Properties {
63
+ properties := types .NewProperties ()
64
+ properties .Set ("ID" , f .ID )
65
+ return properties
66
+ }
You can’t perform that action at this time.
0 commit comments