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

Commit c517629

Browse files
committed
Add CloudHSMv2 support
1 parent 0666077 commit c517629

File tree

2 files changed

+132
-0
lines changed

2 files changed

+132
-0
lines changed

resources/cloudhsmv2-cluster.go

+60
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"
5+
"github.com/aws/aws-sdk-go/aws/session"
6+
"github.com/aws/aws-sdk-go/service/cloudhsmv2"
7+
)
8+
9+
type CloudHSMV2Cluster struct {
10+
svc *cloudhsmv2.CloudHSMV2
11+
clusterID *string
12+
}
13+
14+
func init() {
15+
register("CloudHSMV2Cluster", ListCloudHSMV2Clusters)
16+
}
17+
18+
func ListCloudHSMV2Clusters(sess *session.Session) ([]Resource, error) {
19+
svc := cloudhsmv2.New(sess)
20+
resources := []Resource{}
21+
22+
params := &cloudhsmv2.DescribeClustersInput{
23+
MaxResults: aws.Int64(25),
24+
}
25+
26+
for {
27+
resp, err := svc.DescribeClusters(params)
28+
if err != nil {
29+
return nil, err
30+
}
31+
32+
for _, cluster := range resp.Clusters {
33+
resources = append(resources, &CloudHSMV2Cluster{
34+
svc: svc,
35+
clusterID: cluster.ClusterId,
36+
})
37+
}
38+
39+
if resp.NextToken == nil {
40+
break
41+
}
42+
43+
params.NextToken = resp.NextToken
44+
}
45+
46+
return resources, nil
47+
}
48+
49+
func (f *CloudHSMV2Cluster) Remove() error {
50+
51+
_, err := f.svc.DeleteCluster(&cloudhsmv2.DeleteClusterInput{
52+
ClusterId: f.clusterID,
53+
})
54+
55+
return err
56+
}
57+
58+
func (f *CloudHSMV2Cluster) String() string {
59+
return *f.clusterID
60+
}

resources/cloudhsmv2-clusterhsms.go

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
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/cloudhsmv2"
7+
)
8+
9+
type CloudHSMV2ClusterHSM struct {
10+
svc *cloudhsmv2.CloudHSMV2
11+
clusterID *string
12+
hsmIDs []*string
13+
}
14+
15+
func init() {
16+
register("CloudHSMV2ClusterHSM", ListCloudHSMV2ClusterHSMs)
17+
}
18+
19+
func ListCloudHSMV2ClusterHSMs(sess *session.Session) ([]Resource, error) {
20+
svc := cloudhsmv2.New(sess)
21+
resources := []Resource{}
22+
23+
params := &cloudhsmv2.DescribeClustersInput{
24+
MaxResults: aws.Int64(25),
25+
}
26+
27+
for {
28+
resp, err := svc.DescribeClusters(params)
29+
if err != nil {
30+
return nil, err
31+
}
32+
33+
for _, cluster := range resp.Clusters {
34+
var hsmIds []*string
35+
for _, hsm := range cluster.Hsms {
36+
hsmIds = append(hsmIds, hsm.HsmId)
37+
}
38+
resources = append(resources, &CloudHSMV2ClusterHSM{
39+
svc: svc,
40+
clusterID: cluster.ClusterId,
41+
hsmIDs: hsmIds,
42+
})
43+
}
44+
45+
if resp.NextToken == nil {
46+
break
47+
}
48+
49+
params.NextToken = resp.NextToken
50+
}
51+
52+
return resources, nil
53+
}
54+
55+
func (f *CloudHSMV2ClusterHSM) Remove() error {
56+
var err error
57+
for _, hsm := range f.hsmIDs {
58+
_, err := f.svc.DeleteHsm(&cloudhsmv2.DeleteHsmInput{
59+
ClusterId: f.clusterID,
60+
HsmId: hsm,
61+
})
62+
if err != nil {
63+
return err
64+
}
65+
}
66+
67+
return err
68+
}
69+
70+
func (f *CloudHSMV2ClusterHSM) String() string {
71+
return *f.clusterID
72+
}

0 commit comments

Comments
 (0)