/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.camel.component.aws.sns; import com.amazonaws.services.sns.AmazonSNS; import org.apache.camel.spi.UriParam; import org.apache.camel.spi.UriParams; @UriParams public class SnsConfiguration implements Cloneable { private String topicArn; // Common properties private String topicName; @UriParam private AmazonSNS amazonSNSClient; @UriParam private String accessKey; @UriParam private String secretKey; @UriParam private String amazonSNSEndpoint; @UriParam private String proxyHost; @UriParam private Integer proxyPort; // Producer only properties @UriParam private String subject; @UriParam private String policy; @UriParam private String messageStructure; /** * The region with which the AWS-SNS client wants to work with. */ public void setAmazonSNSEndpoint(String awsSNSEndpoint) { this.amazonSNSEndpoint = awsSNSEndpoint; } public String getAmazonSNSEndpoint() { return amazonSNSEndpoint; } public String getSubject() { return subject; } /** * The subject which is used if the message header 'CamelAwsSnsSubject' is not present. */ public void setSubject(String subject) { this.subject = subject; } public String getTopicArn() { return topicArn; } /** * The Amazon Resource Name (ARN) assigned to the created topic. */ public void setTopicArn(String topicArn) { this.topicArn = topicArn; } public String getAccessKey() { return accessKey; } /** * Amazon AWS Access Key */ public void setAccessKey(String accessKey) { this.accessKey = accessKey; } public String getSecretKey() { return secretKey; } /** * Amazon AWS Secret Key */ public void setSecretKey(String secretKey) { this.secretKey = secretKey; } public AmazonSNS getAmazonSNSClient() { return amazonSNSClient; } /** * To use the AmazonSNS as the client */ public void setAmazonSNSClient(AmazonSNS amazonSNSClient) { this.amazonSNSClient = amazonSNSClient; } public String getTopicName() { return topicName; } /** * The name of the topic */ public void setTopicName(String topicName) { this.topicName = topicName; } public String getPolicy() { return policy; } /** * The policy for this queue */ public void setPolicy(String policy) { this.policy = policy; } public String getMessageStructure() { return messageStructure; } /** * The message structure to use such as json */ public void setMessageStructure(String messageStructure) { this.messageStructure = messageStructure; } /** * To define a proxy host when instantiating the SQS client */ public String getProxyHost() { return proxyHost; } public void setProxyHost(String proxyHost) { this.proxyHost = proxyHost; } /** * To define a proxy port when instantiating the SQS client */ public Integer getProxyPort() { return proxyPort; } public void setProxyPort(Integer proxyPort) { this.proxyPort = proxyPort; } @Override public String toString() { return "SnsConfiguration[topicName=" + topicName + ", amazonSNSClient=" + amazonSNSClient + ", accessKey=" + accessKey + ", secretKey=xxxxxxxxxxxxxxx" + ", subject=" + subject + ", topicArn=" + topicArn + ", policy=" + policy + ", messageStructure=" + messageStructure + ", proxyHost=" + proxyHost + ", proxyPort=" + proxyPort + "]"; } }