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

Commit 95fac1f

Browse files
committed
Add CloudHSMv2 support for Clusters and Per-Cluster HSMs
1 parent 0666077 commit 95fac1f

File tree

2 files changed

+126
-0
lines changed

2 files changed

+126
-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

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
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+
hsmID *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+
for _, hsm := range cluster.Hsms {
35+
resources = append(resources, &CloudHSMV2ClusterHSM{
36+
svc: svc,
37+
clusterID: hsm.ClusterId,
38+
hsmID: hsm.HsmId,
39+
})
40+
}
41+
42+
}
43+
44+
if resp.NextToken == nil {
45+
break
46+
}
47+
48+
params.NextToken = resp.NextToken
49+
}
50+
51+
return resources, nil
52+
}
53+
54+
func (f *CloudHSMV2ClusterHSM) Remove() error {
55+
56+
_, err := f.svc.DeleteHsm(&cloudhsmv2.DeleteHsmInput{
57+
ClusterId: f.clusterID,
58+
HsmId: f.hsmID,
59+
})
60+
61+
return err
62+
}
63+
64+
func (f *CloudHSMV2ClusterHSM) String() string {
65+
return *f.hsmID
66+
}

0 commit comments

Comments
 (0)