Skip to content

Commit 150eb13

Browse files
Add RedshiftScheduledAction resource (#1047)
* Add RedshiftScheduledAction resource --------- Co-authored-by: Björn Häuser <[email protected]>
1 parent e641116 commit 150eb13

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package resources
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/aws/session"
5+
"github.com/aws/aws-sdk-go/service/redshift"
6+
"github.com/rebuy-de/aws-nuke/v2/pkg/types"
7+
)
8+
9+
type RedshiftScheduledAction struct {
10+
svc *redshift.Redshift
11+
scheduledActionName *string
12+
}
13+
14+
func init() {
15+
register("RedshiftScheduledAction", ListRedshiftScheduledActions)
16+
}
17+
18+
func ListRedshiftScheduledActions(sess *session.Session) ([]Resource, error) {
19+
svc := redshift.New(sess)
20+
resources := []Resource{}
21+
22+
params := &redshift.DescribeScheduledActionsInput{}
23+
24+
for {
25+
resp, err := svc.DescribeScheduledActions(params)
26+
if err != nil {
27+
return nil, err
28+
}
29+
30+
for _, item := range resp.ScheduledActions {
31+
resources = append(resources, &RedshiftScheduledAction{
32+
svc: svc,
33+
scheduledActionName: item.ScheduledActionName,
34+
})
35+
}
36+
37+
if resp.Marker == nil {
38+
break
39+
}
40+
41+
params.Marker = resp.Marker
42+
}
43+
44+
return resources, nil
45+
}
46+
47+
func (f *RedshiftScheduledAction) Remove() error {
48+
49+
_, err := f.svc.DeleteScheduledAction(&redshift.DeleteScheduledActionInput{
50+
ScheduledActionName: f.scheduledActionName,
51+
})
52+
53+
return err
54+
}
55+
56+
func (f *RedshiftScheduledAction) Properties() types.Properties {
57+
properties := types.NewProperties()
58+
properties.Set("scheduledActionName", f.scheduledActionName)
59+
return properties
60+
}

0 commit comments

Comments
 (0)