Skip to content

Commit 97c0044

Browse files
CL-880 Elastic Transcoder Preset support.
1 parent a3a9494 commit 97c0044

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package resources
2+
3+
import (
4+
"fmt"
5+
"strings"
6+
7+
"github.com/aws/aws-sdk-go/aws/session"
8+
"github.com/aws/aws-sdk-go/service/elastictranscoder"
9+
"github.com/rebuy-de/aws-nuke/v2/pkg/types"
10+
)
11+
12+
type ElasticTranscoderPreset struct {
13+
svc *elastictranscoder.ElasticTranscoder
14+
presetID *string
15+
}
16+
17+
func init() {
18+
register("ElasticTranscoderPreset", ListElasticTranscoderPresets)
19+
}
20+
21+
func ListElasticTranscoderPresets(sess *session.Session) ([]Resource, error) {
22+
svc := elastictranscoder.New(sess)
23+
resources := []Resource{}
24+
25+
params := &elastictranscoder.ListPresetsInput{}
26+
27+
for {
28+
resp, err := svc.ListPresets(params)
29+
if err != nil {
30+
return nil, err
31+
}
32+
33+
for _, preset := range resp.Presets {
34+
resources = append(resources, &ElasticTranscoderPreset{
35+
svc: svc,
36+
presetID: preset.Id,
37+
})
38+
}
39+
40+
if resp.NextPageToken == nil {
41+
break
42+
}
43+
44+
params.PageToken = resp.NextPageToken
45+
}
46+
47+
return resources, nil
48+
}
49+
50+
func (f *ElasticTranscoderPreset) Filter() error {
51+
if strings.HasPrefix(*f.presetID, "1351620000001") {
52+
return fmt.Errorf("cannot delete elastic transcoder system presets")
53+
}
54+
return nil
55+
}
56+
57+
func (f *ElasticTranscoderPreset) Remove() error {
58+
59+
_, err := f.svc.DeletePreset(&elastictranscoder.DeletePresetInput{
60+
Id: f.presetID,
61+
})
62+
63+
return err
64+
}
65+
66+
func (f *ElasticTranscoderPreset) Properties() types.Properties {
67+
properties := types.NewProperties()
68+
properties.Set("PresetID", f.presetID)
69+
return properties
70+
}
71+
72+
func (f *ElasticTranscoderPreset) String() string {
73+
return *f.presetID
74+
}

0 commit comments

Comments
 (0)