Skip to content

Commit

Permalink
Add GuardDuty detectors (#625)
Browse files Browse the repository at this point in the history
* Add GuardDuty detectors

* Include review suggestions
  • Loading branch information
hntrmrrs committed Apr 29, 2021
1 parent 8bfe0af commit eab5b39
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions resources/guardduty.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package resources

import (
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/guardduty"
"github.com/rebuy-de/aws-nuke/pkg/types"
)

type GuardDutyDetector struct {
svc *guardduty.GuardDuty
id *string
}

func init() {
register("GuardDutyDetector", ListGuardDutyDetectors)
}

func ListGuardDutyDetectors(sess *session.Session) ([]Resource, error) {
svc := guardduty.New(sess)

detectors := make([]Resource, 0)

params := &guardduty.ListDetectorsInput{}

err := svc.ListDetectorsPages(params, func(page *guardduty.ListDetectorsOutput, lastPage bool) bool {
for _, out := range page.DetectorIds {
detectors = append(detectors, &GuardDutyDetector{
svc: svc,
id: out,
})
}
return true
})
if err != nil {
return nil, err
}
return detectors, nil
}

func (detector *GuardDutyDetector) Remove() error {
_, err := detector.svc.DeleteDetector(&guardduty.DeleteDetectorInput{
DetectorId: detector.id,
})
return err
}

func (detector *GuardDutyDetector) Properties() types.Properties {
properties := types.NewProperties()
properties.Set("DetectorID", detector.id)
return properties
}

func (detector *GuardDutyDetector) String() string {
return *detector.id
}

0 comments on commit eab5b39

Please sign in to comment.