Example usage for com.amazonaws.services.sns.model Subscription getSubscriptionArn

List of usage examples for com.amazonaws.services.sns.model Subscription getSubscriptionArn

Introduction

In this page you can find the example usage for com.amazonaws.services.sns.model Subscription getSubscriptionArn.

Prototype


public String getSubscriptionArn() 

Source Link

Document

The subscription's ARN.

Usage

From source file:awslabs.lab31.SolutionCode.java

License:Open Source License

@Override
public void deleteSubscriptions(AmazonSNSClient snsClient, String topicArn) {
    // TODO: Construct a ListSubscriptionsByTopicRequest object using the provided topic ARN.
    ListSubscriptionsByTopicRequest listSubscriptionsByTopicRequest = new ListSubscriptionsByTopicRequest()
            .withTopicArn(topicArn);/*  www  .j  av  a2s . co m*/

    // TODO: Submit the request using the listSubscriptionsByTopic method of the snsClient object.
    ListSubscriptionsByTopicResult listSubscriptionsByTopicResult = snsClient
            .listSubscriptionsByTopic(listSubscriptionsByTopicRequest);

    // TODO: Iterate over the subscriptions in the request result.
    // TODO: For each subscription, construct an UnsubscribeRequest object using the subscription ARN.
    // TODO: For each unsubscribe request, submit it using the unsubscribe method of the snsClient object.
    for (Subscription subscription : listSubscriptionsByTopicResult.getSubscriptions()) {
        UnsubscribeRequest unsubscribeRequest = new UnsubscribeRequest()
                .withSubscriptionArn(subscription.getSubscriptionArn());
        snsClient.unsubscribe(unsubscribeRequest);
    }
}

From source file:awslabs.lab31.StudentCode.java

License:Open Source License

/**
 * Delete all subscriptions to the specified SNS topic. Hint: Call getSubscriptions() on the client object to get
 * all of the subscriptions and loop through them calling the client object's unsubscribe() method with details of
 * each subscription./* w w w  . ja va 2s .  c  o m*/
 * 
 * @param snsClient The SNS client object.
 * @param topicArn The SNS topic to remove the subscriptions from.
 */
@Override
public void deleteSubscriptions(AmazonSNSClient snsClient, String topicArn) {
    ListSubscriptionsByTopicRequest request = new ListSubscriptionsByTopicRequest(topicArn);
    ListSubscriptionsByTopicResult result = snsClient.listSubscriptionsByTopic(request);

    for (Subscription s : result.getSubscriptions()) {
        UnsubscribeRequest unsubscribeRequest = new UnsubscribeRequest(s.getSubscriptionArn());
        snsClient.unsubscribe(unsubscribeRequest);
    }
}

From source file:com.comcast.cns.controller.CNSSubscriptionPageServlet.java

License:Apache License

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    if (redirectUnauthenticatedUser(request, response)) {
        return;// w  w  w. j  a va2s .c  o  m
    }

    CMBControllerServlet.valueAccumulator.initializeAllCounters();
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    Map<?, ?> parameters = request.getParameterMap();

    String userId = request.getParameter("userId");
    String topicArn = request.getParameter("topicArn");
    String endPoint = request.getParameter("endPoint");
    String protocol = request.getParameter("protocol");
    String arn = request.getParameter("arn");
    String nextToken = request.getParameter("nextToken");

    connect(request);

    if (parameters.containsKey("Subscribe")) {

        try {

            SubscribeRequest subscribeRequest = new SubscribeRequest(topicArn, protocol.toLowerCase(),
                    endPoint);
            sns.subscribe(subscribeRequest);

        } catch (Exception ex) {
            logger.error("event=subscribe", ex);
            throw new ServletException(ex);
        }

    } else if (parameters.containsKey("Unsubscribe")) {

        try {
            UnsubscribeRequest unsubscribeRequest = new UnsubscribeRequest(arn);
            sns.unsubscribe(unsubscribeRequest);
        } catch (Exception ex) {
            logger.error("event=unsubscribe arn=" + arn, ex);
            throw new ServletException(ex);
        }
    }

    List<Subscription> subscriptions = new ArrayList<Subscription>();
    ListSubscriptionsByTopicResult listSubscriptionsByTopicResult = null;

    try {

        listSubscriptionsByTopicResult = sns
                .listSubscriptionsByTopic(new ListSubscriptionsByTopicRequest(topicArn, nextToken));
        subscriptions = listSubscriptionsByTopicResult.getSubscriptions();

    } catch (Exception ex) {
        logger.error("event=listAllSubscriptionsByTopic topic_arn=" + topicArn, ex);
        throw new ServletException(ex);
    }

    ICNSTopicPersistence topicHandler = PersistenceFactory.getTopicPersistence();
    CNSTopic topic = null;

    try {
        topic = topicHandler.getTopic(topicArn);
    } catch (Exception ex) {
        logger.error("event=getTopic topic_arn=" + topicArn, ex);
        throw new ServletException(ex);
    }

    out.println("<html>");
    out.println("<script type='text/javascript' language='javascript'>");
    out.println("function changeEndpointHint(protocol){ ");
    out.println(" if (protocol == 'HTTP' || protocol == 'HTTPS') { ");
    out.println(" document.getElementById('endPoint').placeholder = 'e.g. http://company.com'; }");
    out.println(" else if (protocol == 'EMAIL' || protocol == 'EMAIL_JSON') { ");
    out.println(" document.getElementById('endPoint').placeholder = 'e.g. user@domain.com'; }");
    out.println(" else if (protocol == 'CQS' || protocol == 'SQS') { ");
    out.println(
            " document.getElementById('endPoint').placeholder = 'e.g. arn:aws:cqs:ccp:555555555555:my-queue'; } ");
    out.println(
            " else if (protocol == 'redis') { document.getElementById('endPoint').placeholder = 'e.g. redis://server:port/channelname'; }");
    out.println("}");
    out.println("</script>");

    header(request, out, "Subscriptions for Topic " + ((topic != null) ? topic.getName() : ""));

    out.println("<body>");

    out.println("<h2>Subscriptions for Topic " + ((topic != null) ? topic.getName() : "") + "</h2>");

    if (user != null) {
        out.println("<table><tr><td><b>User Name:</b></td><td>" + user.getUserName() + "</td></tr>");
        out.println("<tr><td><b>User ID:</b></td><td>" + user.getUserId() + "</td></tr>");
        out.println("<tr><td><b>Access Key:</b></td><td>" + user.getAccessKey() + "</td></tr>");
        out.println("<tr><td><b>Access Secret:</b></td><td>" + user.getAccessSecret() + "</td></tr>");
        out.println("<tr><td><b>Topic Name:</b></td><td>" + topic.getName() + "</td></tr>");
        out.println("<tr><td><b>Topic Display Name:</b></td><td>" + topic.getDisplayName() + "</td></tr>");
        out.println("<tr><td><b>Topic Arn:</b></td><td>" + topic.getArn() + "</td></tr>");
        out.println("<tr><td><b>Num Subscriptions:</b></td><td>" + subscriptions.size() + "</td></tr></table>");
    }

    out.println("<p><table><tr><td><b>Protocol</b></td><td><b>End Point</b></td><td>&nbsp;</td></tr>");
    out.println("<form action=\"/webui/cnsuser/subscription/?userId=" + userId + "&topicArn=" + topicArn
            + "\" method=POST>");
    out.println(
            "<tr><td><select name='protocol' onchange='changeEndpointHint(this.value)'><option value='HTTP'>HTTP</option><option value='HTTPS'>HTTPS</option><option value='EMAIL'>EMAIL</option><option value='EMAIL_JSON'>EMAIL_JSON</option><option value='CQS'>CQS</option><option value='SQS'>SQS</option><option value='redis'>REDIS</option></select></td>");
    out.println(
            "<td><input type='text' name='endPoint' id = 'endPoint' size='65' placeholder='e.g. http://company.com'><input type='hidden' name='userId' value='"
                    + userId
                    + "'></td><td><input type='submit' value='Subscribe' name='Subscribe' /></td></tr>");
    out.println("</form></table>");

    out.println("<p><hr width='100%' align='left' />");
    out.println("<p><table class = 'alternatecolortable' border='1'>");
    out.println("<tr><th>Row</th>");
    out.println("<th>Arn</th>");
    out.println("<th>Protocol</th>");
    out.println("<th>End Point</th>");
    out.println("<th>Subscription Attributes</th>");
    out.println("<th>Raw Message Delivery</th>");
    out.println("<th>&nbsp;</th></tr>");

    for (int i = 0; subscriptions != null && i < subscriptions.size(); i++) {

        Subscription s = subscriptions.get(i);
        out.println("<tr>");
        out.println("<form action=\"/webui/cnsuser/subscription/?userId=" + user.getUserId() + "&arn="
                + s.getSubscriptionArn() + "&topicArn=" + topicArn + "\" method=POST>");
        out.println("<td>" + i + "</td>");
        out.println("<td>" + s.getSubscriptionArn() + "<input type='hidden' name='arn' value="
                + s.getSubscriptionArn() + "></td>");
        out.println("<td>" + s.getProtocol() + "</td>");
        if (s.getProtocol().toLowerCase().equals("cqs") && isAdmin(request)) {
            out.println("<td><a href='/webui/cqsuser?userId=" + Util.getUserIdForQueueArn(s.getEndpoint())
                    + "'>" + s.getEndpoint() + "</a></td>");
        } else {
            out.println("<td>" + s.getEndpoint() + "</td>");
        }

        if (s.getProtocol().toString().equals("http")
                && !s.getSubscriptionArn().equals("PendingConfirmation")) {
            out.println(
                    "<td><a href='#' onclick=\"window.open('/webui/cnsuser/subscription/editdeliverypolicy?subscriptionArn="
                            + s.getSubscriptionArn() + "&userId=" + userId
                            + "', 'EditDeliveryPolicy', 'height=630,width=580,toolbar=no')\">View/Edit Delivery Policy</a></td>");
        } else {
            out.println("<td>&nbsp;</td>");
        }

        if ((s.getProtocol().toString().equals("https") || s.getProtocol().toString().equals("http")
                || s.getProtocol().toString().equals("cqs") || s.getProtocol().toString().equals("sqs"))
                && !s.getSubscriptionArn().equals("PendingConfirmation")) {
            String url = "/webui/cnsuser/subscription/rawmessagedeliverypolicy/?subscriptionArn="
                    + s.getSubscriptionArn() + "&userId=" + userId;
            out.println("<td><a href='#' onclick=\"window.open('" + url
                    + "', 'RawMessageDelivery', 'height=200,width=580,toolbar=no')\">Raw Message Delivery</a></td>");
        } else {
            out.println("<td>&nbsp;</td>");
        }

        if (s.getSubscriptionArn().equals("PendingConfirmation")) {
            out.println("<td>&nbsp;</td>");
        } else {
            out.println("<td><input type='submit' value='Unsubscribe' name='Unsubscribe'/></td>");
        }

        out.println("</form></tr>");
    }

    out.println("</table></p>");

    if (listSubscriptionsByTopicResult != null && listSubscriptionsByTopicResult.getNextToken() != null) {
        out.println("<p><a href='/webui/cnsuser/subscription/?userId=" + userId + "&topicArn=" + topicArn
                + "&nextToken=" + response.encodeURL(listSubscriptionsByTopicResult.getNextToken())
                + "'>next&nbsp;&gt;</a></p>");
    }

    out.println("<h5 style='text-align:center;'><a href='/webui'>ADMIN HOME</a>");
    out.println(
            "<a href='/webui/cnsuser?userId=" + userId + "&topicArn=" + topicArn + "'>BACK TO TOPIC</a></h5>");
    out.println("</body></html>");

    CMBControllerServlet.valueAccumulator.deleteAllCounters();
}

From source file:org.lendingclub.mercator.aws.SNSScanner.java

License:Apache License

private void projectSubscription(Topic topic, Subscription subscription) {

    ObjectNode n = mapper.createObjectNode();
    n.put("aws_topicArn", subscription.getTopicArn());
    n.put("aws_endpoint", subscription.getEndpoint());
    n.put("aws_protocol", subscription.getProtocol());
    n.put("aws_owner", subscription.getOwner());
    n.put("aws_region", getRegion().getName());
    n.put("aws_account", getAccountId());
    String cypher = "merge (s:AwsSnsSubscription {aws_arn:{arn}}) set s+={props}, s.updateTs=timestamp()";

    getNeoRxClient().execCypher(cypher, "arn", subscription.getSubscriptionArn(), "props", n);

    cypher = "match (a:AwsSnsSubscription {aws_arn:{subscriptionArn}}), (t:AwsSnsTopic {aws_arn:{topicArn}}) MERGE (t)-[r:HAS_SUBSCRIPTION]->(a) set r.updateTs=timestamp()";

    getNeoRxClient().execCypher(cypher, "subscriptionArn", subscription.getSubscriptionArn(), "topicArn",
            topic.getTopicArn());//from www. j  a v  a  2s.  c  om

    String targetArn = subscription.getEndpoint();
    if (targetArn.startsWith("arn:aws:sqs:")) {
        cypher = "match (a:AwsSnsTopic {aws_arn:{topicArn}}),(q:AwsSqsQueue {aws_arn:{queueArn}}) MERGE (a)-[r:PUBLISHES]->(q) set r.updateTs=timestamp()";
        getNeoRxClient().execCypher(cypher, "topicArn", subscription.getTopicArn(), "queueArn", targetArn);

    }
}

From source file:shnakkydoodle.notifying.provider.aws.AwsProvider.java

License:Open Source License

/**
 * Retrieve a specific subsctipion id//from w w w .ja va2s. c om
 * 
 * @param topicName
 * @param protocol
 * @param endpoint
 * @return
 */
private String retrieveSubscriptionId(String topicName, String protocol, String endpoint) {

    // find the topic
    NotificationTopic notificationTopic = this.retrieveNotificationTopic(topicName);
    if (notificationTopic == null) {
        return null;
    }

    AmazonSNSClient snsClient = getSNSClient();
    for (Subscription subscription : snsClient.listSubscriptions().getSubscriptions()) {
        if (subscription.getTopicArn().equals(notificationTopic.getTopicId())) {
            if (subscription.getProtocol().equals(protocol) && subscription.getEndpoint().equals(endpoint)) {
                return subscription.getSubscriptionArn();
            }
        }
    }

    return null;
}