11package cloud .localstack .awssdkv2 ;
22
3+ import cloud .localstack .Localstack ;
4+ import software .amazon .awssdk .auth .credentials .AwsBasicCredentials ;
5+ import software .amazon .awssdk .auth .credentials .AwsCredentialsProvider ;
6+ import software .amazon .awssdk .auth .credentials .StaticCredentialsProvider ;
7+ import software .amazon .awssdk .awscore .client .builder .AwsClientBuilder ;
8+ import software .amazon .awssdk .core .client .builder .SdkAsyncClientBuilder ;
9+ import software .amazon .awssdk .core .client .builder .SdkSyncClientBuilder ;
10+ import software .amazon .awssdk .http .SdkHttpConfigurationOption ;
11+ import software .amazon .awssdk .http .apache .ApacheHttpClient ;
12+ import software .amazon .awssdk .http .nio .netty .NettyNioAsyncHttpClient ;
313import software .amazon .awssdk .regions .Region ;
14+ import software .amazon .awssdk .services .cloudwatch .CloudWatchAsyncClient ;
15+ import software .amazon .awssdk .services .cloudwatch .CloudWatchClient ;
416import software .amazon .awssdk .services .dynamodb .DynamoDbAsyncClient ;
17+ import software .amazon .awssdk .services .dynamodb .DynamoDbClient ;
18+ import software .amazon .awssdk .services .iam .IamAsyncClient ;
19+ import software .amazon .awssdk .services .iam .IamClient ;
20+ import software .amazon .awssdk .services .kinesis .KinesisAsyncClient ;
21+ import software .amazon .awssdk .services .kinesis .KinesisClient ;
522import software .amazon .awssdk .services .lambda .LambdaAsyncClient ;
6- import software .amazon .awssdk .utils .*;
7- import software .amazon .awssdk .http .*;
8- import software .amazon .awssdk .services .cloudwatch .*;
9- import software .amazon .awssdk .services .kinesis .*;
10- import software .amazon .awssdk .services .sns .*;
11- import software .amazon .awssdk .services .sqs .*;
12- import software .amazon .awssdk .services .s3 .*;
23+ import software .amazon .awssdk .services .lambda .LambdaClient ;
24+ import software .amazon .awssdk .services .qldb .QldbAsyncClient ;
25+ import software .amazon .awssdk .services .qldb .QldbClient ;
26+ import software .amazon .awssdk .services .s3 .S3AsyncClient ;
27+ import software .amazon .awssdk .services .s3 .S3Client ;
1328import software .amazon .awssdk .services .secretsmanager .SecretsManagerAsyncClient ;
14- import software .amazon .awssdk .services .ssm .*;
15- import software .amazon .awssdk .services .iam .*;
16- import software .amazon .awssdk .services .qldb .*;
17- import software .amazon .awssdk .auth .credentials .*;
18- import software .amazon .awssdk .http .nio .netty .NettyNioAsyncHttpClient ;
19- import software .amazon .awssdk .core .client .builder .SdkAsyncClientBuilder ;
20- import software .amazon .awssdk .awscore .client .builder .AwsClientBuilder ;
21-
22- import cloud .localstack .Localstack ;
29+ import software .amazon .awssdk .services .secretsmanager .SecretsManagerClient ;
30+ import software .amazon .awssdk .services .sns .SnsAsyncClient ;
31+ import software .amazon .awssdk .services .sns .SnsClient ;
32+ import software .amazon .awssdk .services .sqs .SqsAsyncClient ;
33+ import software .amazon .awssdk .services .sqs .SqsClient ;
34+ import software .amazon .awssdk .services .ssm .SsmAsyncClient ;
35+ import software .amazon .awssdk .services .ssm .SsmClient ;
36+ import software .amazon .awssdk .utils .AttributeMap ;
2337
24- import java .net .* ;
38+ import java .net .URI ;
2539
2640/**
2741 * Utility methods for AWS SDK v2
3044public class TestUtils {
3145
3246 public static KinesisAsyncClient getClientKinesisAsyncV2 () {
33- return wrapApiClientV2 (KinesisAsyncClient .builder (), Localstack .INSTANCE .getEndpointKinesis ()).build ();
47+ return wrapApiAsyncClientV2 (KinesisAsyncClient .builder (), Localstack .INSTANCE .getEndpointKinesis ()).build ();
48+ }
49+
50+ public static KinesisClient getClientKinesisV2 () {
51+ return wrapApiSyncClientV2 (KinesisClient .builder (), Localstack .INSTANCE .getEndpointKinesis ()).build ();
3452 }
3553
3654 public static DynamoDbAsyncClient getClientDyanamoAsyncV2 () {
37- return wrapApiClientV2 (DynamoDbAsyncClient .builder (), Localstack .INSTANCE .getEndpointDynamoDB ()).build ();
55+ return wrapApiAsyncClientV2 (DynamoDbAsyncClient .builder (), Localstack .INSTANCE .getEndpointDynamoDB ()).build ();
56+ }
57+
58+ public static DynamoDbClient getClientDyanamoV2 () {
59+ return wrapApiSyncClientV2 (DynamoDbClient .builder (), Localstack .INSTANCE .getEndpointDynamoDB ()).build ();
3860 }
3961
4062 public static SqsAsyncClient getClientSQSAsyncV2 () {
41- return wrapApiClientV2 (SqsAsyncClient .builder (), Localstack .INSTANCE .getEndpointSQS ()).build ();
63+ return wrapApiAsyncClientV2 (SqsAsyncClient .builder (), Localstack .INSTANCE .getEndpointSQS ()).build ();
64+ }
65+
66+ public static SqsClient getClientSQSV2 () {
67+ return wrapApiSyncClientV2 (SqsClient .builder (), Localstack .INSTANCE .getEndpointSQS ()).build ();
4268 }
4369
4470 public static QldbAsyncClient getClientQLDBAsyncV2 () {
45- return wrapApiClientV2 (QldbAsyncClient .builder (), Localstack .INSTANCE .getEndpointQLDB ()).build ();
71+ return wrapApiAsyncClientV2 (QldbAsyncClient .builder (), Localstack .INSTANCE .getEndpointQLDB ()).build ();
72+ }
73+
74+ public static QldbClient getClientQLDBV2 () {
75+ return wrapApiSyncClientV2 (QldbClient .builder (), Localstack .INSTANCE .getEndpointQLDB ()).build ();
4676 }
4777
4878 public static SnsAsyncClient getClientSNSAsyncV2 () {
49- return wrapApiClientV2 (SnsAsyncClient .builder (), Localstack .INSTANCE .getEndpointSNS ()).build ();
79+ return wrapApiAsyncClientV2 (SnsAsyncClient .builder (), Localstack .INSTANCE .getEndpointSNS ()).build ();
80+ }
81+
82+ public static SnsClient getClientSNSV2 () {
83+ return wrapApiSyncClientV2 (SnsClient .builder (), Localstack .INSTANCE .getEndpointSNS ()).build ();
5084 }
5185
5286 public static SsmAsyncClient getClientSSMAsyncV2 () {
53- return wrapApiClientV2 (SsmAsyncClient .builder (), Localstack .INSTANCE .getEndpointSSM ()).build ();
87+ return wrapApiAsyncClientV2 (SsmAsyncClient .builder (), Localstack .INSTANCE .getEndpointSSM ()).build ();
88+ }
89+
90+ public static SsmClient getClientSSMV2 () {
91+ return wrapApiSyncClientV2 (SsmClient .builder (), Localstack .INSTANCE .getEndpointSSM ()).build ();
5492 }
5593
5694 public static SecretsManagerAsyncClient getClientSecretsManagerAsyncV2 () {
57- return wrapApiClientV2 (SecretsManagerAsyncClient .builder (), Localstack .INSTANCE .getEndpointSSM ()).build ();
95+ return wrapApiAsyncClientV2 (SecretsManagerAsyncClient .builder (), Localstack .INSTANCE .getEndpointSSM ()).build ();
96+ }
97+
98+ public static SecretsManagerClient getClientSecretsManagerV2 () {
99+ return wrapApiSyncClientV2 (SecretsManagerClient .builder (), Localstack .INSTANCE .getEndpointSSM ()).build ();
58100 }
59101
60102 public static S3AsyncClient getClientS3AsyncV2 () {
61- return wrapApiClientV2 (S3AsyncClient .builder (), Localstack .INSTANCE .getEndpointS3 ()).build ();
103+ return wrapApiAsyncClientV2 (S3AsyncClient .builder (), Localstack .INSTANCE .getEndpointS3 ()).build ();
62104 }
63-
105+
106+ public static S3Client getClientS3V2 () {
107+ return wrapApiSyncClientV2 (S3Client .builder (), Localstack .INSTANCE .getEndpointS3 ()).build ();
108+ }
109+
64110 public static CloudWatchAsyncClient getClientCloudWatchAsyncV2 () {
65- return wrapApiClientV2 (CloudWatchAsyncClient .builder (), Localstack .INSTANCE .getEndpointCloudWatch ()).build ();
111+ return wrapApiAsyncClientV2 (CloudWatchAsyncClient .builder (), Localstack .INSTANCE .getEndpointCloudWatch ()).build ();
112+ }
113+
114+ public static CloudWatchClient getClientCloudWatchV2 () {
115+ return wrapApiSyncClientV2 (CloudWatchClient .builder (), Localstack .INSTANCE .getEndpointCloudWatch ()).build ();
66116 }
67117
68118 public static LambdaAsyncClient getClientLambdaAsyncV2 () {
69- return wrapApiClientV2 (LambdaAsyncClient .builder (), Localstack .INSTANCE .getEndpointLambda ()).build ();
119+ return wrapApiAsyncClientV2 (LambdaAsyncClient .builder (), Localstack .INSTANCE .getEndpointLambda ()).build ();
120+ }
121+
122+ public static LambdaClient getClientLambdaV2 () {
123+ return wrapApiSyncClientV2 (LambdaClient .builder (), Localstack .INSTANCE .getEndpointLambda ()).build ();
70124 }
71-
125+
72126 public static IamAsyncClient getClientIamAsyncV2 () {
73- return wrapApiClientV2 (IamAsyncClient .builder (), Localstack .INSTANCE .getEndpointIAM ()).build ();
127+ return wrapApiAsyncClientV2 (IamAsyncClient .builder (), Localstack .INSTANCE .getEndpointIAM ()).build ();
128+ }
129+
130+ public static IamClient getClientIamV2 () {
131+ return wrapApiSyncClientV2 (IamClient .builder (), Localstack .INSTANCE .getEndpointIAM ()).build ();
74132 }
75-
76- public static <T extends SdkAsyncClientBuilder > T wrapApiClientV2 (T builder , String endpointURL ) {
133+
134+ public static <T extends SdkAsyncClientBuilder > T wrapApiAsyncClientV2 (T builder , String endpointURL ) {
77135 try {
78136 return (T ) ((AwsClientBuilder )builder
79137 .httpClient (NettyNioAsyncHttpClient .builder ().buildWithDefaults (
@@ -87,6 +145,20 @@ public static <T extends SdkAsyncClientBuilder> T wrapApiClientV2(T builder, Str
87145 }
88146 }
89147
148+ public static <T extends SdkSyncClientBuilder > T wrapApiSyncClientV2 (T builder , String endpointURL ) {
149+ try {
150+ return (T ) ((AwsClientBuilder )builder
151+ .httpClient (ApacheHttpClient .builder ().buildWithDefaults (
152+ AttributeMap .builder ().put (
153+ SdkHttpConfigurationOption .TRUST_ALL_CERTIFICATES , java .lang .Boolean .TRUE ).build ())))
154+ .credentialsProvider (getCredentialsV2 ())
155+ .region (Region .of (Localstack .INSTANCE .getDefaultRegion ()))
156+ .endpointOverride (new URI (endpointURL ));
157+ } catch (Exception e ) {
158+ throw new RuntimeException (e );
159+ }
160+ }
161+
90162 private static AwsCredentialsProvider getCredentialsV2 () throws Exception {
91163 return StaticCredentialsProvider .create (AwsBasicCredentials .create ("access" , "secret" ));
92164 }
0 commit comments