Skip to content

Commit cf3c7e4

Browse files
Merge pull request #7 from oreillymedia/Add-Opensearch-Packages-VPCEndpoint-Support
Add opensearch packages vpc endpoint support
2 parents abeee6c + 41e22d2 commit cf3c7e4

File tree

2 files changed

+138
-0
lines changed

2 files changed

+138
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package resources
2+
3+
import (
4+
"time"
5+
6+
"github.com/aws/aws-sdk-go/aws/session"
7+
"github.com/aws/aws-sdk-go/service/opensearchservice"
8+
"github.com/rebuy-de/aws-nuke/v2/pkg/types"
9+
)
10+
11+
type OSPackage struct {
12+
svc *opensearchservice.OpenSearchService
13+
packageID *string
14+
packageName *string
15+
createdTime *time.Time
16+
}
17+
18+
func init() {
19+
register("OSPackage", ListOSPackages)
20+
}
21+
22+
func ListOSPackages(sess *session.Session) ([]Resource, error) {
23+
svc := opensearchservice.New(sess)
24+
25+
listResp, err := svc.DescribePackages(&opensearchservice.DescribePackagesInput{})
26+
if err != nil {
27+
return nil, err
28+
}
29+
30+
resources := make([]Resource, 0)
31+
32+
for _, pkg := range listResp.PackageDetailsList {
33+
resources = append(resources, &OSPackage{
34+
svc: svc,
35+
packageID: pkg.PackageID,
36+
packageName: pkg.PackageName,
37+
createdTime: pkg.CreatedAt,
38+
})
39+
}
40+
41+
return resources, nil
42+
}
43+
44+
func (o *OSPackage) Remove() error {
45+
_, err := o.svc.DeletePackage(&opensearchservice.DeletePackageInput{
46+
PackageID: o.packageID,
47+
})
48+
49+
return err
50+
}
51+
52+
func (o *OSPackage) Properties() types.Properties {
53+
properties := types.NewProperties()
54+
properties.Set("PackageID", o.packageID)
55+
properties.Set("PackageName", o.packageName)
56+
properties.Set("CreatedTime", o.createdTime.Format(time.RFC3339))
57+
return properties
58+
}
59+
60+
func (o *OSPackage) String() string {
61+
return *o.packageID
62+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package resources
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/aws/session"
5+
"github.com/aws/aws-sdk-go/service/opensearchservice"
6+
"github.com/rebuy-de/aws-nuke/v2/pkg/types"
7+
)
8+
9+
type OSVPCEndpoint struct {
10+
svc *opensearchservice.OpenSearchService
11+
vpcEndpointId *string
12+
}
13+
14+
func init() {
15+
register("OSVPCEndpoint", ListOSVPCEndpoints)
16+
}
17+
18+
func ListOSVPCEndpoints(sess *session.Session) ([]Resource, error) {
19+
svc := opensearchservice.New(sess)
20+
21+
vpcEndpointIds, err := getOpenSearchVpcEndpointIds(svc)
22+
if err != nil {
23+
return nil, err
24+
}
25+
26+
listResp, err := svc.DescribeVpcEndpoints(&opensearchservice.DescribeVpcEndpointsInput{
27+
VpcEndpointIds: vpcEndpointIds,
28+
})
29+
if err != nil {
30+
return nil, err
31+
}
32+
33+
resources := make([]Resource, 0)
34+
35+
for _, vpcEndpoint := range listResp.VpcEndpoints {
36+
resources = append(resources, &OSVPCEndpoint{
37+
svc: svc,
38+
vpcEndpointId: vpcEndpoint.VpcEndpointId,
39+
})
40+
}
41+
42+
return resources, nil
43+
}
44+
45+
func getOpenSearchVpcEndpointIds(svc *opensearchservice.OpenSearchService) ([]*string, error) {
46+
vpcEndpointIds := make([]*string, 0)
47+
48+
listResp, err := svc.ListVpcEndpoints(&opensearchservice.ListVpcEndpointsInput{})
49+
if err != nil {
50+
return nil, err
51+
}
52+
53+
for _, vpcEndpoint := range listResp.VpcEndpointSummaryList {
54+
vpcEndpointIds = append(vpcEndpointIds, vpcEndpoint.VpcEndpointId)
55+
}
56+
57+
return vpcEndpointIds, nil
58+
}
59+
60+
func (o *OSVPCEndpoint) Remove() error {
61+
_, err := o.svc.DeleteVpcEndpoint(&opensearchservice.DeleteVpcEndpointInput{
62+
VpcEndpointId: o.vpcEndpointId,
63+
})
64+
65+
return err
66+
}
67+
68+
func (o *OSVPCEndpoint) Properties() types.Properties {
69+
properties := types.NewProperties()
70+
properties.Set("VpcEndpointId", o.vpcEndpointId)
71+
return properties
72+
}
73+
74+
func (o *OSVPCEndpoint) String() string {
75+
return *o.vpcEndpointId
76+
}

0 commit comments

Comments
 (0)