Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Commit 0f3c7e2

Browse files
authored
Merge pull request #119 from tomvachon/feature/firehose
Add Firehose Delivery Streams
2 parents db20aba + d548ca2 commit 0f3c7e2

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

resources/firehose-deliverystreams.go

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package resources
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/aws"
5+
"github.com/aws/aws-sdk-go/aws/session"
6+
"github.com/aws/aws-sdk-go/service/firehose"
7+
)
8+
9+
type FirehoseDeliveryStream struct {
10+
svc *firehose.Firehose
11+
deliveryStreamName *string
12+
}
13+
14+
func init() {
15+
register("FirehoseDeliveryStream", ListFirehoseDeliveryStreams)
16+
}
17+
18+
func ListFirehoseDeliveryStreams(sess *session.Session) ([]Resource, error) {
19+
svc := firehose.New(sess)
20+
resources := []Resource{}
21+
var lastDeliveryStreamName *string
22+
23+
params := &firehose.ListDeliveryStreamsInput{
24+
Limit: aws.Int64(25),
25+
}
26+
27+
for {
28+
output, err := svc.ListDeliveryStreams(params)
29+
if err != nil {
30+
return nil, err
31+
}
32+
33+
for _, deliveryStreamName := range output.DeliveryStreamNames {
34+
resources = append(resources, &FirehoseDeliveryStream{
35+
svc: svc,
36+
deliveryStreamName: deliveryStreamName,
37+
})
38+
lastDeliveryStreamName = deliveryStreamName
39+
}
40+
41+
if *output.HasMoreDeliveryStreams == false {
42+
break
43+
}
44+
45+
params.ExclusiveStartDeliveryStreamName = lastDeliveryStreamName
46+
}
47+
48+
return resources, nil
49+
}
50+
51+
func (f *FirehoseDeliveryStream) Remove() error {
52+
53+
_, err := f.svc.DeleteDeliveryStream(&firehose.DeleteDeliveryStreamInput{
54+
DeliveryStreamName: f.deliveryStreamName,
55+
})
56+
57+
return err
58+
}
59+
60+
func (f *FirehoseDeliveryStream) String() string {
61+
return *f.deliveryStreamName
62+
}

0 commit comments

Comments
 (0)