forked from genevieve/leftovers
/
tag.go
49 lines (40 loc) · 862 Bytes
/
tag.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package ec2
import (
"fmt"
awsec2 "github.com/aws/aws-sdk-go/service/ec2"
)
type Tag struct {
client tagsClient
key *string
value *string
resourceId *string
identifier string
rtype string
}
func NewTag(client tagsClient, key, value, resourceId *string) Tag {
identifier := fmt.Sprintf("%s:%s", *key, *value)
return Tag{
client: client,
key: key,
value: value,
resourceId: resourceId,
identifier: identifier,
rtype: "EC2 Tag",
}
}
func (t Tag) Delete() error {
_, err := t.client.DeleteTags(&awsec2.DeleteTagsInput{
Tags: []*awsec2.Tag{{Key: t.key, Value: t.value}},
Resources: []*string{t.resourceId},
})
if err != nil {
return fmt.Errorf("Delete: %s", err)
}
return nil
}
func (t Tag) Name() string {
return t.identifier
}
func (t Tag) Type() string {
return t.rtype
}