Skip to content
This repository has been archived by the owner on May 9, 2022. It is now read-only.

Commit

Permalink
Add all client instances
Browse files Browse the repository at this point in the history
  • Loading branch information
robertberry-zz committed Aug 29, 2014
1 parent c089226 commit 2ccd31e
Show file tree
Hide file tree
Showing 3 changed files with 136 additions and 10 deletions.
Expand Up @@ -5,10 +5,8 @@ import com.amazonaws.handlers.AsyncHandler
import scala.language.experimental.macros
import scala.reflect.macros._

trait AwsClientWrapper

object AwsClientWrapper {
def wrapImpl[A: c.WeakTypeTag](c: whitebox.Context)(a: c.Expr[A]): c.Expr[AwsClientWrapper] = {
def wrapImpl[A: c.WeakTypeTag](c: whitebox.Context)(a: c.Expr[A]): c.Expr[Any] = {
import c.universe._

val className = TermName(c.freshName())
Expand Down Expand Up @@ -38,7 +36,7 @@ object AwsClientWrapper {

q"""
def $futureMethodName(..$futureMethodParams): scala.concurrent.Future[$resultType] = {
val pair = com.gu.awswrappers.Handlers.createHandler[$requestType, $resultType]()
val pair = com.gu.awswrappers.utils.Handlers.createHandler[$requestType, $resultType]()
$className.$methodTermName(..$paramNames, pair._2)
pair._1
}
Expand All @@ -51,12 +49,12 @@ object AwsClientWrapper {
val abba = q"""
val $className = $a

new com.gu.awswrappers.macros.AwsClientWrapper {
new {
..$generatedMethods
}
"""

c.Expr[AwsClientWrapper](abba)
c.Expr[Any](abba)
}
}

Expand Down
@@ -1,4 +1,4 @@
package com.gu.awswrappers
package com.gu.awswrappers.utils

import com.amazonaws.handlers.AsyncHandler

Expand Down
134 changes: 131 additions & 3 deletions instances/src/main/scala/com/gu/awswrappers/package.scala
@@ -1,22 +1,150 @@
package com.gu

import com.amazonaws.services.autoscaling.AmazonAutoScalingAsyncClient
import com.amazonaws.services.cloudformation.AmazonCloudFormationAsyncClient
import com.amazonaws.services.cloudfront.AmazonCloudFrontAsyncClient
import com.amazonaws.services.cloudsearchdomain.AmazonCloudSearchDomainAsyncClient
import com.amazonaws.services.cloudsearchv2.AmazonCloudSearchAsyncClient
import com.amazonaws.services.cloudtrail.AWSCloudTrailAsyncClient
import com.amazonaws.services.cloudwatch.AmazonCloudWatchAsyncClient
import com.amazonaws.services.cognitoidentity.AmazonCognitoIdentityAsyncClient
import com.amazonaws.services.cognitosync.AmazonCognitoSyncAsyncClient
import com.amazonaws.services.datapipeline.DataPipelineAsyncClient
import com.amazonaws.services.directconnect.AmazonDirectConnectAsyncClient
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBAsyncClient
import com.amazonaws.services.ec2.AmazonEC2AsyncClient
import com.amazonaws.services.elasticache.AmazonElastiCacheAsyncClient
import com.amazonaws.services.elasticbeanstalk.AWSElasticBeanstalkAsyncClient
import com.amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancingAsyncClient
import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceAsyncClient
import com.amazonaws.services.elastictranscoder.AmazonElasticTranscoderAsyncClient
import com.amazonaws.services.glacier.AmazonGlacierAsyncClient
import com.amazonaws.services.identitymanagement.AmazonIdentityManagementAsyncClient
import com.amazonaws.services.importexport.AmazonImportExportAsyncClient
import com.amazonaws.services.kinesis.AmazonKinesisAsyncClient
import com.amazonaws.services.logs.AWSLogsAsyncClient
import com.amazonaws.services.opsworks.AWSOpsWorksAsyncClient
import com.amazonaws.services.rds.AmazonRDSAsyncClient
import com.amazonaws.services.redshift.AmazonRedshiftAsyncClient
import com.amazonaws.services.route53.AmazonRoute53AsyncClient
import com.amazonaws.services.route53domains.AmazonRoute53DomainsAsyncClient
import com.amazonaws.services.securitytoken.AWSSecurityTokenServiceAsyncClient
import com.amazonaws.services.simpledb.AmazonSimpleDBAsyncClient
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceAsyncClient
import com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflowAsyncClient
import com.amazonaws.services.sns.AmazonSNSAsyncClient
import com.amazonaws.services.sqs.AmazonSQSAsyncClient
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBAsyncClient
import com.amazonaws.services.storagegateway.AWSStorageGatewayAsyncClient
import com.amazonaws.services.support.AWSSupportAsyncClient

import com.gu.awswrappers.macros.AwsClientWrapper.wrap

package object awswrappers {
implicit def enrichAutoscalingClient(autoscalingClient: AmazonAutoScalingAsyncClient) =
wrap(autoscalingClient)

implicit def enrichCloudFormationClient(cloudFormationClient: AmazonCloudFormationAsyncClient) =
wrap(cloudFormationClient)

implicit def enrichCloudFrontClient(cloudFrontClient: AmazonCloudFrontAsyncClient) =
wrap(cloudFrontClient)

implicit def enrichCloudSearchDomainClient(cloudSearchDomainClient: AmazonCloudSearchDomainAsyncClient) =
wrap(cloudSearchDomainClient)

implicit def enrichCloudSearchClient(cloudSearchClient: AmazonCloudSearchAsyncClient) =
wrap(cloudSearchClient)

implicit def enrichCloudTrailClient(cloudTrailClient: AWSCloudTrailAsyncClient) =
wrap(cloudTrailClient)

implicit def enrichCloudWatchClient(cloudWatchClient: AmazonCloudWatchAsyncClient) =
wrap(cloudWatchClient)

implicit def enrichCognitoIdentityClient(cognitoIdentityClient: AmazonCognitoIdentityAsyncClient) =
wrap(cognitoIdentityClient)

implicit def enrichCognitoSyncClient(cognitoSyncClient: AmazonCognitoSyncAsyncClient) =
wrap(cognitoSyncClient)

implicit def enrichDataPipelineClient(dataPipelineClient: DataPipelineAsyncClient) =
wrap(dataPipelineClient)

implicit def enrichDirectConnectClient(directConnectClient: AmazonDirectConnectAsyncClient) =
wrap(directConnectClient)

implicit def enrichDynamoDbClient(dynamoDbClient: AmazonDynamoDBAsyncClient) =
wrap(dynamoDbClient)

implicit def enrichEc2Client(ec2Client: AmazonEC2AsyncClient) =
wrap(ec2Client)

implicit def enrichElasticacheClient(elasticacheClient: AmazonElastiCacheAsyncClient) =
wrap(elasticacheClient)

implicit def enrichElasticBeanstalkClient(elasticBeanstalkClient: AWSElasticBeanstalkAsyncClient) =
wrap(elasticBeanstalkClient)

implicit def enrichElasticLoadBalancingClient(elasticLoadBalancingClient: AmazonElasticLoadBalancingAsyncClient) =
wrap(elasticLoadBalancingClient)

implicit def enrichElasticMapReduceClient(elasticMapReduceClient: AmazonElasticMapReduceAsyncClient) =
wrap(elasticMapReduceClient)

implicit def enrichElasticTranscoderClient(elasticTranscoderClient: AmazonElasticTranscoderAsyncClient) =
wrap(elasticTranscoderClient)

implicit def enrichGlacierClient(glacierClient: AmazonGlacierAsyncClient) =
wrap(glacierClient)

implicit def enrichIdentityManagementClient(identityManagementClient: AmazonIdentityManagementAsyncClient) =
wrap(identityManagementClient)

implicit def enrichImportExportClient(importExportClient: AmazonImportExportAsyncClient) =
wrap(importExportClient)

implicit def enrichKinesisClient(kinesisClient: AmazonKinesisAsyncClient) =
wrap(kinesisClient)

implicit def enrichLogsClient(logsClient: AWSLogsAsyncClient) =
wrap(logsClient)

implicit def enrichOpsWorksClient(opsWorksClient: AWSOpsWorksAsyncClient) =
wrap(opsWorksClient)

implicit def enrichAmazonRdsAsyncClient(rdsClient: AmazonRDSAsyncClient) =
wrap(rdsClient)

implicit def enrichAmazonRedShiftAsyncClient(redShiftClient: AmazonRedshiftAsyncClient) =
wrap(redShiftClient)

implicit def enrichRoute53Client(route53Client: AmazonRoute53AsyncClient) =
wrap(route53Client)

implicit def enrichRoute53DomainsClient(route53DomainsClient: AmazonRoute53DomainsAsyncClient) =
wrap(route53DomainsClient)

implicit def enrichSecurityTokenClient(securityTokenClient: AWSSecurityTokenServiceAsyncClient) =
wrap(securityTokenClient)

implicit def enrichSimpleDbClient(simpleDbClient: AmazonSimpleDBAsyncClient) =
wrap(simpleDbClient)

implicit def enrichSimpleEmailClient(simpleEmailClient: AmazonSimpleEmailServiceAsyncClient) =
wrap(simpleEmailClient)

implicit def enrichSimpleWorkFlowClient(simpleWorkFlowClient: AmazonSimpleWorkflowAsyncClient) =
wrap(simpleWorkFlowClient)

implicit def enrichSqsClient(sqsClient: AmazonSQSAsyncClient) =
wrap(sqsClient)

implicit def enrichSnsClient(snsClient: AmazonSNSAsyncClient) =
wrap(snsClient)

implicit def enrichKinesisClient(kinesisClient: AmazonKinesisAsyncClient) =
wrap(kinesisClient)
implicit def enrichStorageGatewayClient(storageGatewayClient: AWSStorageGatewayAsyncClient) =
wrap(storageGatewayClient)

implicit def enrichSupportclient(supportClient: AWSSupportAsyncClient) =
wrap(supportClient)
}

0 comments on commit 2ccd31e

Please sign in to comment.