2020-04-14 08:40:52 +02:00
|
|
|
package amazon
|
|
|
|
|
2020-04-14 17:44:00 +02:00
|
|
|
import (
|
|
|
|
"github.com/aws/aws-sdk-go/aws"
|
|
|
|
"github.com/aws/aws-sdk-go/aws/session"
|
2020-04-20 13:47:38 +02:00
|
|
|
"github.com/aws/aws-sdk-go/service/cloudformation"
|
|
|
|
"github.com/aws/aws-sdk-go/service/cloudformation/cloudformationiface"
|
2020-04-14 18:03:33 +02:00
|
|
|
"github.com/aws/aws-sdk-go/service/cloudwatchlogs"
|
2020-04-20 13:47:38 +02:00
|
|
|
"github.com/aws/aws-sdk-go/service/cloudwatchlogs/cloudwatchlogsiface"
|
2020-04-14 18:03:33 +02:00
|
|
|
"github.com/aws/aws-sdk-go/service/ec2"
|
2020-04-20 13:47:38 +02:00
|
|
|
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
2020-04-14 18:03:33 +02:00
|
|
|
"github.com/aws/aws-sdk-go/service/ecs"
|
2020-04-20 13:47:38 +02:00
|
|
|
"github.com/aws/aws-sdk-go/service/ecs/ecsiface"
|
2020-04-16 15:15:39 +02:00
|
|
|
"github.com/aws/aws-sdk-go/service/elbv2"
|
2020-04-20 13:47:38 +02:00
|
|
|
"github.com/aws/aws-sdk-go/service/elbv2/elbv2iface"
|
2020-04-14 18:03:33 +02:00
|
|
|
"github.com/aws/aws-sdk-go/service/iam"
|
2020-04-20 13:47:38 +02:00
|
|
|
"github.com/aws/aws-sdk-go/service/iam/iamiface"
|
2020-04-14 17:44:00 +02:00
|
|
|
"github.com/docker/ecs-plugin/pkg/compose"
|
|
|
|
)
|
2020-04-14 08:40:52 +02:00
|
|
|
|
2020-04-14 17:44:00 +02:00
|
|
|
const (
|
|
|
|
ProjectTag = "com.docker.compose.project"
|
|
|
|
)
|
|
|
|
|
|
|
|
func NewClient(profile string, cluster string, region string) (compose.API, error) {
|
|
|
|
sess, err := session.NewSessionWithOptions(session.Options{
|
|
|
|
Profile: profile,
|
|
|
|
Config: aws.Config{
|
|
|
|
Region: aws.String(region),
|
|
|
|
},
|
|
|
|
})
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return &client{
|
|
|
|
Cluster: cluster,
|
2020-04-21 11:38:52 +02:00
|
|
|
Region: region,
|
|
|
|
sess: sess,
|
|
|
|
ECS: ecs.New(sess),
|
|
|
|
EC2: ec2.New(sess),
|
|
|
|
ELB: elbv2.New(sess),
|
|
|
|
CW: cloudwatchlogs.New(sess),
|
|
|
|
IAM: iam.New(sess),
|
|
|
|
CF: cloudformation.New(sess),
|
2020-04-14 17:44:00 +02:00
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type client struct {
|
|
|
|
Cluster string
|
2020-04-21 11:38:52 +02:00
|
|
|
Region string
|
|
|
|
sess *session.Session
|
|
|
|
ECS ecsiface.ECSAPI
|
|
|
|
EC2 ec2iface.EC2API
|
|
|
|
ELB elbv2iface.ELBV2API
|
|
|
|
CW cloudwatchlogsiface.CloudWatchLogsAPI
|
|
|
|
IAM iamiface.IAMAPI
|
|
|
|
CF cloudformationiface.CloudFormationAPI
|
2020-04-14 08:40:52 +02:00
|
|
|
}
|
2020-04-14 17:44:00 +02:00
|
|
|
|
|
|
|
var _ compose.API = &client{}
|