func (awsc *ClientsStr) KMS(region *string, accountID *string, role *string) KMSAPI {
	return kms.New(awsc.Session(), awsc.Config(region, accountID, role))
}
KMS returns client
package aws
import (
	"github.com/aws/aws-sdk-go/service/cloudformation"
	"github.com/aws/aws-sdk-go/service/cloudformation/cloudformationiface"
	"github.com/aws/aws-sdk-go/service/cloudwatchlogs"
	"github.com/aws/aws-sdk-go/service/cloudwatchlogs/cloudwatchlogsiface"
	"github.com/aws/aws-sdk-go/service/dynamodb"
	"github.com/aws/aws-sdk-go/service/dynamodb/dynamodbiface"
	"github.com/aws/aws-sdk-go/service/ec2"
	"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
	"github.com/aws/aws-sdk-go/service/iam"
	"github.com/aws/aws-sdk-go/service/iam/iamiface"
	"github.com/aws/aws-sdk-go/service/kinesis"
	"github.com/aws/aws-sdk-go/service/kinesis/kinesisiface"
	"github.com/aws/aws-sdk-go/service/kms"
	"github.com/aws/aws-sdk-go/service/kms/kmsiface"
	"github.com/aws/aws-sdk-go/service/lambda"
	"github.com/aws/aws-sdk-go/service/lambda/lambdaiface"
	"github.com/aws/aws-sdk-go/service/s3"
	"github.com/aws/aws-sdk-go/service/s3/s3iface"
	"github.com/aws/aws-sdk-go/service/sfn"
	"github.com/aws/aws-sdk-go/service/sfn/sfniface"
	"github.com/aws/aws-sdk-go/service/sns"
	"github.com/aws/aws-sdk-go/service/sns/snsiface"
	"github.com/aws/aws-sdk-go/service/sqs"
	"github.com/aws/aws-sdk-go/service/sqs/sqsiface"
	ar "github.com/coinbase/step/aws"
)
func FetchEc2Tag(tags []*ec2.Tag, tagKey *string) *string {
	if tagKey == nil {
		return nil
	}
	for _, tag := range tags {
		if tag.Key == nil {
			continue
		}
		if *tag.Key == *tagKey {
			return tag.Value
		}
	}
	return nil
}
func HasAllValue(tag *string) bool {
	if tag == nil {
		return false
	}
	return "_all" == *tag
}
func HasProjectName(r interface {
	ProjectName() *string
}, projectName *string) bool {
	if r.ProjectName() == nil || projectName == nil {
		return false
	}
	return *r.ProjectName() == *projectName
}
func HasConfigName(r interface {
	ConfigName() *string
}, configName *string) bool {
	if r.ConfigName() == nil || configName == nil {
		return false
	}
	return *r.ConfigName() == *configName
}
func HasServiceName(r interface {
	ServiceName() *string
}, serviceName *string) bool {
	if r.ServiceName() == nil || serviceName == nil {
		return false
	}
	return *r.ServiceName() == *serviceName
}
type S3API = s3iface.S3API
type CFAPI = cloudformationiface.CloudFormationAPI
type CWLAPI = cloudwatchlogsiface.CloudWatchLogsAPI
type EC2API = ec2iface.EC2API
type IAMAPI = iamiface.IAMAPI
type SFNAPI = sfniface.SFNAPI
type SNSAPI = snsiface.SNSAPI
type KINAPI = kinesisiface.KinesisAPI
type DDBAPI = dynamodbiface.DynamoDBAPI
type SQSAPI = sqsiface.SQSAPI
type KMSAPI = kmsiface.KMSAPI
type LambdaAPI = lambdaiface.LambdaAPI
type DynamoDBAPI = dynamodbiface.DynamoDBAPI
type Clients interface {
	S3(region *string, accountID *string, role *string) S3API
	CF(region *string, accountID *string, role *string) CFAPI
	EC2(region *string, accountID *string, role *string) EC2API
	IAM(region *string, accountID *string, role *string) IAMAPI
	SFN(region *string, accountID *string, role *string) SFNAPI
	SNS(region *string, accountID *string, role *string) SNSAPI
	KIN(region *string, accountID *string, role *string) KINAPI
	DDB(region *string, accountID *string, role *string) DDBAPI
	SQS(region *string, accountID *string, role *string) SQSAPI
	KMS(region *string, accountID *string, role *string) KMSAPI
	Lambda(region *string, accountID *string, role *string) LambdaAPI
	CWL(region *string, accountID *string, role *string) CWLAPI
	DynamoDBClient(region *string, accountID *string, role *string) DynamoDBAPI
}
type ClientsStr struct {
	ar.Clients
}
func (awsc *ClientsStr) S3(region *string, accountID *string, role *string) S3API {
	return s3.New(awsc.Session(), awsc.Config(region, accountID, role))
}
func (awsc *ClientsStr) CF(region *string, accountID *string, role *string) CFAPI {
	return cloudformation.New(awsc.Session(), awsc.Config(region, accountID, role))
}
func (awsc *ClientsStr) CWL(region *string, accountID *string, role *string) CWLAPI {
	return cloudwatchlogs.New(awsc.Session(), awsc.Config(region, accountID, role))
}
func (awsc *ClientsStr) EC2(region *string, accountID *string, role *string) EC2API {
	return ec2.New(awsc.Session(), awsc.Config(region, accountID, role))
}
func (awsc *ClientsStr) IAM(region *string, accountID *string, role *string) IAMAPI {
	return iam.New(awsc.Session(), awsc.Config(region, accountID, role))
}
func (awsc *ClientsStr) SFN(region *string, accountID *string, role *string) SFNAPI {
	return sfn.New(awsc.Session(), awsc.Config(region, accountID, role))
}
func (awsc *ClientsStr) SNS(region *string, accountID *string, role *string) SNSAPI {
	return sns.New(awsc.Session(), awsc.Config(region, accountID, role))
}
func (awsc *ClientsStr) KIN(region *string, accountID *string, role *string) KINAPI {
	return kinesis.New(awsc.Session(), awsc.Config(region, accountID, role))
}
func (awsc *ClientsStr) DDB(region *string, accountID *string, role *string) DDBAPI {
	return dynamodb.New(awsc.Session(), awsc.Config(region, accountID, role))
}
func (awsc *ClientsStr) SQS(region *string, accountID *string, role *string) SQSAPI {
	return sqs.New(awsc.Session(), awsc.Config(region, accountID, role))
}