Skip to content

Commit fb96d8a

Browse files
committed
(feat) adding support for endpoint_url in pipeline config
Signed-off-by: Aman Dhingra <amandhingra00@gmail.com>
1 parent be0ee98 commit fb96d8a

2 files changed

Lines changed: 28 additions & 6 deletions

File tree

data-prepper-plugins/dynamodb-source/src/main/java/org/opensearch/dataprepper/plugins/source/dynamodb/ClientFactory.java

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,13 @@
1313
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
1414
import software.amazon.awssdk.regions.Region;
1515
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
16+
import software.amazon.awssdk.services.dynamodb.DynamoDbClientBuilder;
1617
import software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient;
18+
import software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClientBuilder;
1719
import software.amazon.awssdk.services.s3.S3Client;
1820

21+
import java.net.URI;
22+
1923
public class ClientFactory {
2024

2125
private final AwsCredentialsProvider awsCredentialsProvider;
@@ -37,18 +41,28 @@ public ClientFactory(final AwsCredentialsSupplier awsCredentialsSupplier,
3741

3842

3943
public DynamoDbStreamsClient buildDynamoDbStreamClient() {
40-
return DynamoDbStreamsClient.builder()
44+
DynamoDbStreamsClientBuilder clientBuilder = DynamoDbStreamsClient.builder()
4145
.credentialsProvider(awsCredentialsProvider)
42-
.region(awsAuthenticationConfig.getAwsRegion())
43-
.build();
46+
.region(awsAuthenticationConfig.getAwsRegion());
47+
48+
if (awsAuthenticationConfig.getEndpointUrl() != null && !awsAuthenticationConfig.getEndpointUrl().isEmpty()) {
49+
clientBuilder.endpointOverride(URI.create(awsAuthenticationConfig.getEndpointUrl()));
50+
}
51+
52+
return clientBuilder.build();
4453
}
4554

4655

4756
public DynamoDbClient buildDynamoDBClient() {
48-
return DynamoDbClient.builder()
57+
DynamoDbClientBuilder clientBuilder = DynamoDbClient.builder()
4958
.region(awsAuthenticationConfig.getAwsRegion())
50-
.credentialsProvider(awsCredentialsProvider)
51-
.build();
59+
.credentialsProvider(awsCredentialsProvider);
60+
61+
if (awsAuthenticationConfig.getEndpointUrl() != null && !awsAuthenticationConfig.getEndpointUrl().isEmpty()) {
62+
clientBuilder.endpointOverride(URI.create(awsAuthenticationConfig.getEndpointUrl()));
63+
}
64+
65+
return clientBuilder.build();
5266
}
5367

5468

data-prepper-plugins/dynamodb-source/src/main/java/org/opensearch/dataprepper/plugins/source/dynamodb/configuration/AwsAuthenticationConfig.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ public class AwsAuthenticationConfig {
2929
@Size(max = 5, message = "sts_header_overrides supports a maximum of 5 headers to override")
3030
private Map<String, String> awsStsHeaderOverrides;
3131

32+
@JsonProperty("endpoint_url")
33+
@Size(min = 10, max = 2048, message = "endpoint_url length should be between 10 and 2048 characters")
34+
private String endpoint_url;
35+
3236
public String getAwsStsRoleArn() {
3337
return awsStsRoleArn;
3438
}
@@ -44,5 +48,9 @@ public Region getAwsRegion() {
4448
public Map<String, String> getAwsStsHeaderOverrides() {
4549
return awsStsHeaderOverrides;
4650
}
51+
52+
public String getEndpointUrl() {
53+
return endpoint_url;
54+
}
4755
}
4856

0 commit comments

Comments
 (0)