From fbda85d9d8fd3aed382bf3f21ae8555e5b72ddd7 Mon Sep 17 00:00:00 2001 From: Thomas Vachon Date: Fri, 2 Mar 2018 07:18:13 -0500 Subject: [PATCH] Add ElasticSearch Domain and SQS Queue --- resources/elasticsearchservice-domain.go | 48 ++++++++++++++++++++++++ resources/sqs-queues.go | 48 ++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 resources/elasticsearchservice-domain.go create mode 100644 resources/sqs-queues.go diff --git a/resources/elasticsearchservice-domain.go b/resources/elasticsearchservice-domain.go new file mode 100644 index 000000000..9cfac4720 --- /dev/null +++ b/resources/elasticsearchservice-domain.go @@ -0,0 +1,48 @@ +package resources + +import ( + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/elasticsearchservice" +) + +type ESDomain struct { + svc *elasticsearchservice.ElasticsearchService + domainName *string +} + +func init() { + register("ESDomain", ListESDomains) +} + +func ListESDomains(sess *session.Session) ([]Resource, error) { + svc := elasticsearchservice.New(sess) + + params := &elasticsearchservice.ListDomainNamesInput{} + resp, err := svc.ListDomainNames(params) + if err != nil { + return nil, err + } + + resources := make([]Resource, 0) + for _, domain := range resp.DomainNames { + resources = append(resources, &ESDomain{ + svc: svc, + domainName: domain.DomainName, + }) + } + + return resources, nil +} + +func (f *ESDomain) Remove() error { + + _, err := f.svc.DeleteElasticsearchDomain(&elasticsearchservice.DeleteElasticsearchDomainInput{ + DomainName: f.domainName, + }) + + return err +} + +func (f *ESDomain) String() string { + return *f.domainName +} diff --git a/resources/sqs-queues.go b/resources/sqs-queues.go new file mode 100644 index 000000000..1821834f8 --- /dev/null +++ b/resources/sqs-queues.go @@ -0,0 +1,48 @@ +package resources + +import ( + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/sqs" +) + +type SQSQueue struct { + svc *sqs.SQS + queueURL *string +} + +func init() { + register("SQSQueue", ListSQSQueues) +} + +func ListSQSQueues(sess *session.Session) ([]Resource, error) { + svc := sqs.New(sess) + + params := &sqs.ListQueuesInput{} + resp, err := svc.ListQueues(params) + if err != nil { + return nil, err + } + + resources := make([]Resource, 0) + for _, queue := range resp.QueueUrls { + resources = append(resources, &SQSQueue{ + svc: svc, + queueURL: queue, + }) + } + + return resources, nil +} + +func (f *SQSQueue) Remove() error { + + _, err := f.svc.DeleteQueue(&sqs.DeleteQueueInput{ + QueueUrl: f.queueURL, + }) + + return err +} + +func (f *SQSQueue) String() string { + return *f.queueURL +}