@Bean
public AmazonSNSAsync snsClient(
@Value("${notification.sns.region}") String region,
@Value("${notification.sns.endpointUrl:disabled}") String snsEndpointUrl) {
if ("disabled".equalsIgnoreCase(snsEndpointUrl)) {
return null;
}
AmazonSNSAsync client = AmazonSNSAsyncClientBuilder
.standard()
.withClientConfiguration(
new ClientConfiguration().withRetryPolicy(PredefinedRetryPolicies.getDefaultRetryPolicy()))
.withExecutorFactory(() -> Executors.newSingleThreadScheduledExecutor())
.withEndpointConfiguration(new EndpointConfiguration(snsEndpointUrl, region))
.build();
return client;
}