Skip to content

Commit ac7200e

Browse files
Merge pull request #15 from oreillymedia/Add-rekognition-project-and-dataset-support-
Adding rekognition project and dataset support.
2 parents 90a9c2a + ac2f55f commit ac7200e

File tree

2 files changed

+122
-0
lines changed

2 files changed

+122
-0
lines changed

resources/rekognition-dataset.go

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+
"github.com/aws/aws-sdk-go/aws"
5+
"github.com/aws/aws-sdk-go/aws/session"
6+
"github.com/aws/aws-sdk-go/service/rekognition"
7+
)
8+
9+
type RekognitionDataset struct {
10+
svc *rekognition.Rekognition
11+
arn *string
12+
}
13+
14+
func init() {
15+
register("RekognitionDataset", ListRekognitionDatasets)
16+
}
17+
18+
func ListRekognitionDatasets(sess *session.Session) ([]Resource, error) {
19+
svc := rekognition.New(sess)
20+
resources := []Resource{}
21+
22+
params := &rekognition.DescribeProjectsInput{
23+
MaxResults: aws.Int64(100),
24+
}
25+
26+
for {
27+
output, err := svc.DescribeProjects(params)
28+
if err != nil {
29+
return nil, err
30+
}
31+
32+
for _, project := range output.ProjectDescriptions {
33+
for _, dataset := range project.Datasets {
34+
resources = append(resources, &RekognitionDataset{
35+
svc: svc,
36+
arn: dataset.DatasetArn,
37+
})
38+
}
39+
}
40+
41+
if output.NextToken == nil {
42+
break
43+
}
44+
45+
params.NextToken = output.NextToken
46+
}
47+
48+
return resources, nil
49+
}
50+
51+
func (f *RekognitionDataset) Remove() error {
52+
53+
_, err := f.svc.DeleteDataset(&rekognition.DeleteDatasetInput{
54+
DatasetArn: f.arn,
55+
})
56+
57+
return err
58+
}
59+
60+
func (f *RekognitionDataset) String() string {
61+
return *f.arn
62+
}

resources/rekognition-project.go

Lines changed: 60 additions & 0 deletions
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/rekognition"
7+
)
8+
9+
type RekognitionProject struct {
10+
svc *rekognition.Rekognition
11+
arn *string
12+
}
13+
14+
func init() {
15+
register("RekognitionProject", ListRekognitionProjects)
16+
}
17+
18+
func ListRekognitionProjects(sess *session.Session) ([]Resource, error) {
19+
svc := rekognition.New(sess)
20+
resources := []Resource{}
21+
22+
params := &rekognition.DescribeProjectsInput{
23+
MaxResults: aws.Int64(100),
24+
}
25+
26+
for {
27+
output, err := svc.DescribeProjects(params)
28+
if err != nil {
29+
return nil, err
30+
}
31+
32+
for _, project := range output.ProjectDescriptions {
33+
resources = append(resources, &RekognitionProject{
34+
svc: svc,
35+
arn: project.ProjectArn,
36+
})
37+
}
38+
39+
if output.NextToken == nil {
40+
break
41+
}
42+
43+
params.NextToken = output.NextToken
44+
}
45+
46+
return resources, nil
47+
}
48+
49+
func (f *RekognitionProject) Remove() error {
50+
51+
_, err := f.svc.DeleteProject(&rekognition.DeleteProjectInput{
52+
ProjectArn: f.arn,
53+
})
54+
55+
return err
56+
}
57+
58+
func (f *RekognitionProject) String() string {
59+
return *f.arn
60+
}

0 commit comments

Comments
 (0)