class AWSSNSMetaDataExtension extends AbstractMetaDataExtension {

    @Override
    public Optional<MetaData> meta(Map<String, Object> parameters) {
        final String accessKey = ConnectorOptions.extractOption(parameters, "accessKey");
        final String secretKey = ConnectorOptions.extractOption(parameters, "secretKey");
        final String region = ConnectorOptions.extractOption(parameters, "region");
        AmazonSNSClientBuilder clientBuilder;
        AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
        AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
        clientBuilder = AmazonSNSClientBuilder.standard().withCredentials(credentialsProvider);
        clientBuilder = clientBuilder.withRegion(Regions.valueOf(region));
        AmazonSNS sqsClient = clientBuilder.build();
        try {
            ListTopicsResult result = sqsClient.listTopics();
            Set<String> setTopic = new HashSet<String>();
            if (result.getTopics() != null) {
                for (Topic entry : result.getTopics()) {
                	setTopic.add(entry.getTopicArn());
                }
            }
            return Optional.of(MetaDataBuilder.on(getCamelContext()).withAttribute(MetaData.CONTENT_TYPE, "text/plain").withAttribute(MetaData.JAVA_TYPE, String.class)
                .withPayload(setTopic).build());
        } catch (Exception e) {
            throw new IllegalStateException("Get information about existing topics with has failed.", e);
        }
    }

      AWSSNSMetaDataExtension(CamelContext context);

}