github.com/almamedia/fargate@v0.2.4-0.20220704071213-7b5b3d27c5eb/ec2/main.go (about)

     1  package ec2
     2  
     3  //go:generate mockgen -package client -destination=mock/client/client.go github.com/almamedia/fargate/ec2 Client
     4  //go:generate mockgen -package sdk -source ../vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go -destination=mock/sdk/ec2iface.go github.com/aws/aws-sdk-go/service/ec2/ec2iface EC2API
     5  
     6  import (
     7  	"github.com/aws/aws-sdk-go/aws/session"
     8  	"github.com/aws/aws-sdk-go/service/ec2"
     9  	"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
    10  )
    11  
    12  // Client represents a method for accessing EC2.
    13  type Client interface {
    14  	AuthorizeAllSecurityGroupIngress(string) error
    15  	CreateDefaultSecurityGroup() (string, error)
    16  	GetDefaultSecurityGroupID() (string, error)
    17  	GetDefaultSubnetIDs() ([]string, error)
    18  	GetSubnetVPCID(string) (string, error)
    19  }
    20  
    21  // SDKClient implements access to EC2 via the AWS SDK.
    22  type SDKClient struct {
    23  	client ec2iface.EC2API
    24  }
    25  
    26  // New returns an SDKClient configured with the given session.
    27  func New(sess *session.Session) SDKClient {
    28  	return SDKClient{
    29  		client: ec2.New(sess),
    30  	}
    31  }