All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.sns.AmazonSNSAsyncClient Maven / Gradle / Ivy

Go to download

The Amazon Web Services SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

The newest version!
/*
 * Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 * 
 *  http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file 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 com.amazonaws.services.sns;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.handlers.AsyncHandler;
import com.amazonaws.ClientConfiguration;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;

import com.amazonaws.services.sns.model.*;

/**
 * Asynchronous client for accessing AmazonSNS.
 * All asynchronous calls made using this client are non-blocking. Callers could either
 * process the result and handle the exceptions in the worker thread by providing a callback handler
 * when making the call, or use the returned Future object to check the result of the call in the calling thread.
 * Amazon Simple Notification Service 

* Amazon Simple Notification Service (Amazon SNS) is a web service that * enables you to build distributed web-enabled applications. * Applications can use Amazon SNS to easily push real-time notification * messages to interested subscribers over multiple delivery protocols. * For more information about this product see * http://aws.amazon.com/sns . For detailed information about Amazon SNS features and their associated API calls, see the Amazon SNS Developer Guide * . *

*

* We also provide SDKs that enable you to access Amazon SNS from your * preferred programming language. The SDKs contain functionality that * automatically takes care of tasks such as: cryptographically signing * your service requests, retrying requests, and handling error * responses. For a list of available SDKs, go to * Tools for Amazon Web Services * . *

*/ public class AmazonSNSAsyncClient extends AmazonSNSClient implements AmazonSNSAsync { /** * Executor service for executing asynchronous requests. */ private ExecutorService executorService; private static final int DEFAULT_THREAD_POOL_SIZE = 50; /** * Constructs a new asynchronous client to invoke service methods on * AmazonSNS. A credentials provider chain will be used * that searches for credentials in this order: *
    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 metadata service
  • *
* *

* All service calls made using this new client object are blocking, and will not * return until the service call completes. * * @see DefaultAWSCredentialsProviderChain */ public AmazonSNSAsyncClient() { this(new DefaultAWSCredentialsProviderChain()); } /** * Constructs a new asynchronous client to invoke service methods on * AmazonSNS. A credentials provider chain will be used * that searches for credentials in this order: *

    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 metadata service
  • *
* *

* All service calls made using this new client object are blocking, and will not * return until the service call completes. * * @param clientConfiguration The client configuration options controlling how this * client connects to AmazonSNS * (ex: proxy settings, retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain */ public AmazonSNSAsyncClient(ClientConfiguration clientConfiguration) { this(new DefaultAWSCredentialsProviderChain(), clientConfiguration, Executors.newFixedThreadPool(clientConfiguration.getMaxConnections())); } /** * Constructs a new asynchronous client to invoke service methods on * AmazonSNS using the specified AWS account credentials. * Default client settings will be used, and a fixed size thread pool will be * created for executing the asynchronous tasks. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentials The AWS credentials (access key ID and secret key) to use * when authenticating with AWS services. */ public AmazonSNSAsyncClient(AWSCredentials awsCredentials) { this(awsCredentials, Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE)); } /** * Constructs a new asynchronous client to invoke service methods on * AmazonSNS using the specified AWS account credentials * and executor service. Default client settings will be used. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use * when authenticating with AWS services. * @param executorService * The executor service by which all asynchronous requests will * be executed. */ public AmazonSNSAsyncClient(AWSCredentials awsCredentials, ExecutorService executorService) { super(awsCredentials); this.executorService = executorService; } /** * Constructs a new asynchronous client to invoke service methods on * AmazonSNS using the specified AWS account credentials, * executor service, and client configuration options. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use * when authenticating with AWS services. * @param clientConfiguration * Client configuration options (ex: max retry limit, proxy * settings, etc). * @param executorService * The executor service by which all asynchronous requests will * be executed. */ public AmazonSNSAsyncClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration, ExecutorService executorService) { super(awsCredentials, clientConfiguration); this.executorService = executorService; } /** * Constructs a new asynchronous client to invoke service methods on * AmazonSNS using the specified AWS account credentials provider. * Default client settings will be used, and a fixed size thread pool will be * created for executing the asynchronous tasks. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials * to authenticate requests with AWS services. */ public AmazonSNSAsyncClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE)); } /** * Constructs a new asynchronous client to invoke service methods on * AmazonSNS using the specified AWS account credentials provider * and executor service. Default client settings will be used. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials * to authenticate requests with AWS services. * @param executorService * The executor service by which all asynchronous requests will * be executed. */ public AmazonSNSAsyncClient(AWSCredentialsProvider awsCredentialsProvider, ExecutorService executorService) { this(awsCredentialsProvider, new ClientConfiguration(), executorService); } /** * Constructs a new asynchronous client to invoke service methods on * AmazonSNS using the specified AWS account credentials * provider and client configuration options. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials * to authenticate requests with AWS services. * @param clientConfiguration * Client configuration options (ex: max retry limit, proxy * settings, etc). */ public AmazonSNSAsyncClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, Executors.newFixedThreadPool(clientConfiguration.getMaxConnections())); } /** * Constructs a new asynchronous client to invoke service methods on * AmazonSNS using the specified AWS account credentials * provider, executor service, and client configuration options. * *

* All calls made using this new client object are non-blocking, and will immediately * return a Java Future object that the caller can later check to see if the service * call has actually completed. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials * to authenticate requests with AWS services. * @param clientConfiguration * Client configuration options (ex: max retry limit, proxy * settings, etc). * @param executorService * The executor service by which all asynchronous requests will * be executed. */ public AmazonSNSAsyncClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, ExecutorService executorService) { super(awsCredentialsProvider, clientConfiguration); this.executorService = executorService; } /** * Returns the executor service used by this async client to execute * requests. * * @return The executor service used by this async client to execute * requests. */ public ExecutorService getExecutorService() { return executorService; } /** * Shuts down the client, releasing all managed resources. This includes * forcibly terminating all pending asynchronous service calls. Clients who * wish to give pending asynchronous service calls time to complete should * call getExecutorService().shutdown() followed by * getExecutorService().awaitTermination() prior to calling this method. */ @Override public void shutdown() { super.shutdown(); executorService.shutdownNow(); } /** *

* The ConfirmSubscription action verifies an endpoint * owner's intent to receive messages by validating the token sent to the * endpoint by an earlier Subscribe action. If the token is * valid, the action creates a new subscription and returns its Amazon * Resource Name (ARN). This call requires an AWS signature only when the * AuthenticateOnUnsubscribe flag is set to "true". *

* * @param confirmSubscriptionRequest Container for the necessary * parameters to execute the ConfirmSubscription operation on AmazonSNS. * * @return A Java Future object containing the response from the * ConfirmSubscription service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future confirmSubscriptionAsync(final ConfirmSubscriptionRequest confirmSubscriptionRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ConfirmSubscriptionResult call() throws Exception { return confirmSubscription(confirmSubscriptionRequest); } }); } /** *

* The ConfirmSubscription action verifies an endpoint * owner's intent to receive messages by validating the token sent to the * endpoint by an earlier Subscribe action. If the token is * valid, the action creates a new subscription and returns its Amazon * Resource Name (ARN). This call requires an AWS signature only when the * AuthenticateOnUnsubscribe flag is set to "true". *

* * @param confirmSubscriptionRequest Container for the necessary * parameters to execute the ConfirmSubscription operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * ConfirmSubscription service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future confirmSubscriptionAsync( final ConfirmSubscriptionRequest confirmSubscriptionRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ConfirmSubscriptionResult call() throws Exception { ConfirmSubscriptionResult result; try { result = confirmSubscription(confirmSubscriptionRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(confirmSubscriptionRequest, result); return result; } }); } /** *

* The CreatePlatformApplication action creates a platform * application object for one of the supported push notification * services, such as APNS and GCM, to which devices and mobile apps may * register. You must specify PlatformPrincipal and PlatformCredential * attributes when using the CreatePlatformApplication * action. The PlatformPrincipal is received from the notification * service. For APNS/APNS_SANDBOX, PlatformPrincipal is "SSL * certificate". For GCM, PlatformPrincipal is not applicable. For ADM, * PlatformPrincipal is "client id". The PlatformCredential is also * received from the notification service. For APNS/APNS_SANDBOX, * PlatformCredential is "private key". For GCM, PlatformCredential is * "API key". For ADM, PlatformCredential is "client secret". The * PlatformApplicationArn that is returned when using * CreatePlatformApplication is then used as an attribute * for the CreatePlatformEndpoint action. For more * information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param createPlatformApplicationRequest Container for the necessary * parameters to execute the CreatePlatformApplication operation on * AmazonSNS. * * @return A Java Future object containing the response from the * CreatePlatformApplication service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future createPlatformApplicationAsync(final CreatePlatformApplicationRequest createPlatformApplicationRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public CreatePlatformApplicationResult call() throws Exception { return createPlatformApplication(createPlatformApplicationRequest); } }); } /** *

* The CreatePlatformApplication action creates a platform * application object for one of the supported push notification * services, such as APNS and GCM, to which devices and mobile apps may * register. You must specify PlatformPrincipal and PlatformCredential * attributes when using the CreatePlatformApplication * action. The PlatformPrincipal is received from the notification * service. For APNS/APNS_SANDBOX, PlatformPrincipal is "SSL * certificate". For GCM, PlatformPrincipal is not applicable. For ADM, * PlatformPrincipal is "client id". The PlatformCredential is also * received from the notification service. For APNS/APNS_SANDBOX, * PlatformCredential is "private key". For GCM, PlatformCredential is * "API key". For ADM, PlatformCredential is "client secret". The * PlatformApplicationArn that is returned when using * CreatePlatformApplication is then used as an attribute * for the CreatePlatformEndpoint action. For more * information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param createPlatformApplicationRequest Container for the necessary * parameters to execute the CreatePlatformApplication operation on * AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * CreatePlatformApplication service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future createPlatformApplicationAsync( final CreatePlatformApplicationRequest createPlatformApplicationRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public CreatePlatformApplicationResult call() throws Exception { CreatePlatformApplicationResult result; try { result = createPlatformApplication(createPlatformApplicationRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(createPlatformApplicationRequest, result); return result; } }); } /** *

* The GetTopicAttributes action returns all of the * properties of a topic. Topic properties returned might differ based on * the authorization of the user. *

* * @param getTopicAttributesRequest Container for the necessary * parameters to execute the GetTopicAttributes operation on AmazonSNS. * * @return A Java Future object containing the response from the * GetTopicAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future getTopicAttributesAsync(final GetTopicAttributesRequest getTopicAttributesRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public GetTopicAttributesResult call() throws Exception { return getTopicAttributes(getTopicAttributesRequest); } }); } /** *

* The GetTopicAttributes action returns all of the * properties of a topic. Topic properties returned might differ based on * the authorization of the user. *

* * @param getTopicAttributesRequest Container for the necessary * parameters to execute the GetTopicAttributes operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * GetTopicAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future getTopicAttributesAsync( final GetTopicAttributesRequest getTopicAttributesRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public GetTopicAttributesResult call() throws Exception { GetTopicAttributesResult result; try { result = getTopicAttributes(getTopicAttributesRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(getTopicAttributesRequest, result); return result; } }); } /** *

* The Subscribe action prepares to subscribe an endpoint by * sending the endpoint a confirmation message. To actually create a * subscription, the endpoint owner must call the * ConfirmSubscription action with the token from the * confirmation message. Confirmation tokens are valid for three days. *

* * @param subscribeRequest Container for the necessary parameters to * execute the Subscribe operation on AmazonSNS. * * @return A Java Future object containing the response from the * Subscribe service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future subscribeAsync(final SubscribeRequest subscribeRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public SubscribeResult call() throws Exception { return subscribe(subscribeRequest); } }); } /** *

* The Subscribe action prepares to subscribe an endpoint by * sending the endpoint a confirmation message. To actually create a * subscription, the endpoint owner must call the * ConfirmSubscription action with the token from the * confirmation message. Confirmation tokens are valid for three days. *

* * @param subscribeRequest Container for the necessary parameters to * execute the Subscribe operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * Subscribe service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future subscribeAsync( final SubscribeRequest subscribeRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public SubscribeResult call() throws Exception { SubscribeResult result; try { result = subscribe(subscribeRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(subscribeRequest, result); return result; } }); } /** *

* The DeleteEndpoint action, which is idempotent, deletes * the endpoint from SNS. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param deleteEndpointRequest Container for the necessary parameters to * execute the DeleteEndpoint operation on AmazonSNS. * * @return A Java Future object containing the response from the * DeleteEndpoint service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future deleteEndpointAsync(final DeleteEndpointRequest deleteEndpointRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { deleteEndpoint(deleteEndpointRequest); return null; } }); } /** *

* The DeleteEndpoint action, which is idempotent, deletes * the endpoint from SNS. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param deleteEndpointRequest Container for the necessary parameters to * execute the DeleteEndpoint operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * DeleteEndpoint service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future deleteEndpointAsync( final DeleteEndpointRequest deleteEndpointRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { try { deleteEndpoint(deleteEndpointRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(deleteEndpointRequest, null); return null; } }); } /** *

* The SetTopicAttributes action allows a topic owner to set * an attribute of the topic to a new value. *

* * @param setTopicAttributesRequest Container for the necessary * parameters to execute the SetTopicAttributes operation on AmazonSNS. * * @return A Java Future object containing the response from the * SetTopicAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future setTopicAttributesAsync(final SetTopicAttributesRequest setTopicAttributesRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { setTopicAttributes(setTopicAttributesRequest); return null; } }); } /** *

* The SetTopicAttributes action allows a topic owner to set * an attribute of the topic to a new value. *

* * @param setTopicAttributesRequest Container for the necessary * parameters to execute the SetTopicAttributes operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * SetTopicAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future setTopicAttributesAsync( final SetTopicAttributesRequest setTopicAttributesRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { try { setTopicAttributes(setTopicAttributesRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(setTopicAttributesRequest, null); return null; } }); } /** *

* The RemovePermission action removes a statement from a * topic's access control policy. *

* * @param removePermissionRequest Container for the necessary parameters * to execute the RemovePermission operation on AmazonSNS. * * @return A Java Future object containing the response from the * RemovePermission service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future removePermissionAsync(final RemovePermissionRequest removePermissionRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { removePermission(removePermissionRequest); return null; } }); } /** *

* The RemovePermission action removes a statement from a * topic's access control policy. *

* * @param removePermissionRequest Container for the necessary parameters * to execute the RemovePermission operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * RemovePermission service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future removePermissionAsync( final RemovePermissionRequest removePermissionRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { try { removePermission(removePermissionRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(removePermissionRequest, null); return null; } }); } /** *

* The GetEndpointAttributes retrieves the endpoint * attributes for a device on one of the supported push notification * services, such as GCM and APNS. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param getEndpointAttributesRequest Container for the necessary * parameters to execute the GetEndpointAttributes operation on * AmazonSNS. * * @return A Java Future object containing the response from the * GetEndpointAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future getEndpointAttributesAsync(final GetEndpointAttributesRequest getEndpointAttributesRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public GetEndpointAttributesResult call() throws Exception { return getEndpointAttributes(getEndpointAttributesRequest); } }); } /** *

* The GetEndpointAttributes retrieves the endpoint * attributes for a device on one of the supported push notification * services, such as GCM and APNS. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param getEndpointAttributesRequest Container for the necessary * parameters to execute the GetEndpointAttributes operation on * AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * GetEndpointAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future getEndpointAttributesAsync( final GetEndpointAttributesRequest getEndpointAttributesRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public GetEndpointAttributesResult call() throws Exception { GetEndpointAttributesResult result; try { result = getEndpointAttributes(getEndpointAttributesRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(getEndpointAttributesRequest, result); return result; } }); } /** *

* The ListSubscriptions action returns a list of the * requester's subscriptions. Each call returns a limited list of * subscriptions, up to 100. If there are more subscriptions, a * NextToken is also returned. Use the * NextToken parameter in a new * ListSubscriptions call to get further results. *

* * @param listSubscriptionsRequest Container for the necessary parameters * to execute the ListSubscriptions operation on AmazonSNS. * * @return A Java Future object containing the response from the * ListSubscriptions service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future listSubscriptionsAsync(final ListSubscriptionsRequest listSubscriptionsRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ListSubscriptionsResult call() throws Exception { return listSubscriptions(listSubscriptionsRequest); } }); } /** *

* The ListSubscriptions action returns a list of the * requester's subscriptions. Each call returns a limited list of * subscriptions, up to 100. If there are more subscriptions, a * NextToken is also returned. Use the * NextToken parameter in a new * ListSubscriptions call to get further results. *

* * @param listSubscriptionsRequest Container for the necessary parameters * to execute the ListSubscriptions operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * ListSubscriptions service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future listSubscriptionsAsync( final ListSubscriptionsRequest listSubscriptionsRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ListSubscriptionsResult call() throws Exception { ListSubscriptionsResult result; try { result = listSubscriptions(listSubscriptionsRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(listSubscriptionsRequest, result); return result; } }); } /** *

* The CreatePlatformEndpoint action creates an endpoint for * a device and mobile app on one of the supported push notification * services, such as GCM and APNS. CreatePlatformEndpoint * requires the PlatformApplicationArn that is returned from * CreatePlatformApplication . The EndpointArn that is * returned when using CreatePlatformEndpoint can then be * used by the Publish action to send a message to a mobile * app or by the Subscribe action for subscription to a * topic. The CreatePlatformEndpoint action is idempotent, * so if the requester already owns an endpoint with the same device * token and attributes, that endpoint's ARN is returned without creating * a new endpoint. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param createPlatformEndpointRequest Container for the necessary * parameters to execute the CreatePlatformEndpoint operation on * AmazonSNS. * * @return A Java Future object containing the response from the * CreatePlatformEndpoint service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future createPlatformEndpointAsync(final CreatePlatformEndpointRequest createPlatformEndpointRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public CreatePlatformEndpointResult call() throws Exception { return createPlatformEndpoint(createPlatformEndpointRequest); } }); } /** *

* The CreatePlatformEndpoint action creates an endpoint for * a device and mobile app on one of the supported push notification * services, such as GCM and APNS. CreatePlatformEndpoint * requires the PlatformApplicationArn that is returned from * CreatePlatformApplication . The EndpointArn that is * returned when using CreatePlatformEndpoint can then be * used by the Publish action to send a message to a mobile * app or by the Subscribe action for subscription to a * topic. The CreatePlatformEndpoint action is idempotent, * so if the requester already owns an endpoint with the same device * token and attributes, that endpoint's ARN is returned without creating * a new endpoint. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param createPlatformEndpointRequest Container for the necessary * parameters to execute the CreatePlatformEndpoint operation on * AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * CreatePlatformEndpoint service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future createPlatformEndpointAsync( final CreatePlatformEndpointRequest createPlatformEndpointRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public CreatePlatformEndpointResult call() throws Exception { CreatePlatformEndpointResult result; try { result = createPlatformEndpoint(createPlatformEndpointRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(createPlatformEndpointRequest, result); return result; } }); } /** *

* The SetSubscriptionAttributes action allows a * subscription owner to set an attribute of the topic to a new value. *

* * @param setSubscriptionAttributesRequest Container for the necessary * parameters to execute the SetSubscriptionAttributes operation on * AmazonSNS. * * @return A Java Future object containing the response from the * SetSubscriptionAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future setSubscriptionAttributesAsync(final SetSubscriptionAttributesRequest setSubscriptionAttributesRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { setSubscriptionAttributes(setSubscriptionAttributesRequest); return null; } }); } /** *

* The SetSubscriptionAttributes action allows a * subscription owner to set an attribute of the topic to a new value. *

* * @param setSubscriptionAttributesRequest Container for the necessary * parameters to execute the SetSubscriptionAttributes operation on * AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * SetSubscriptionAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future setSubscriptionAttributesAsync( final SetSubscriptionAttributesRequest setSubscriptionAttributesRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { try { setSubscriptionAttributes(setSubscriptionAttributesRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(setSubscriptionAttributesRequest, null); return null; } }); } /** *

* The CreateTopic action creates a topic to which * notifications can be published. Users can create at most 3000 topics. * For more information, see * http://aws.amazon.com/sns * . This action is idempotent, so if the requester already owns a topic * with the specified name, that topic's ARN is returned without creating * a new topic. *

* * @param createTopicRequest Container for the necessary parameters to * execute the CreateTopic operation on AmazonSNS. * * @return A Java Future object containing the response from the * CreateTopic service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future createTopicAsync(final CreateTopicRequest createTopicRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public CreateTopicResult call() throws Exception { return createTopic(createTopicRequest); } }); } /** *

* The CreateTopic action creates a topic to which * notifications can be published. Users can create at most 3000 topics. * For more information, see * http://aws.amazon.com/sns * . This action is idempotent, so if the requester already owns a topic * with the specified name, that topic's ARN is returned without creating * a new topic. *

* * @param createTopicRequest Container for the necessary parameters to * execute the CreateTopic operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * CreateTopic service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future createTopicAsync( final CreateTopicRequest createTopicRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public CreateTopicResult call() throws Exception { CreateTopicResult result; try { result = createTopic(createTopicRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(createTopicRequest, result); return result; } }); } /** *

* The GetSubscriptionAttribtues action returns all of the * properties of a subscription. *

* * @param getSubscriptionAttributesRequest Container for the necessary * parameters to execute the GetSubscriptionAttributes operation on * AmazonSNS. * * @return A Java Future object containing the response from the * GetSubscriptionAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future getSubscriptionAttributesAsync(final GetSubscriptionAttributesRequest getSubscriptionAttributesRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public GetSubscriptionAttributesResult call() throws Exception { return getSubscriptionAttributes(getSubscriptionAttributesRequest); } }); } /** *

* The GetSubscriptionAttribtues action returns all of the * properties of a subscription. *

* * @param getSubscriptionAttributesRequest Container for the necessary * parameters to execute the GetSubscriptionAttributes operation on * AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * GetSubscriptionAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future getSubscriptionAttributesAsync( final GetSubscriptionAttributesRequest getSubscriptionAttributesRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public GetSubscriptionAttributesResult call() throws Exception { GetSubscriptionAttributesResult result; try { result = getSubscriptionAttributes(getSubscriptionAttributesRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(getSubscriptionAttributesRequest, result); return result; } }); } /** *

* The ListTopics action returns a list of the requester's * topics. Each call returns a limited list of topics, up to 100. If * there are more topics, a NextToken is also returned. Use * the NextToken parameter in a new ListTopics * call to get further results. *

* * @param listTopicsRequest Container for the necessary parameters to * execute the ListTopics operation on AmazonSNS. * * @return A Java Future object containing the response from the * ListTopics service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future listTopicsAsync(final ListTopicsRequest listTopicsRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ListTopicsResult call() throws Exception { return listTopics(listTopicsRequest); } }); } /** *

* The ListTopics action returns a list of the requester's * topics. Each call returns a limited list of topics, up to 100. If * there are more topics, a NextToken is also returned. Use * the NextToken parameter in a new ListTopics * call to get further results. *

* * @param listTopicsRequest Container for the necessary parameters to * execute the ListTopics operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * ListTopics service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future listTopicsAsync( final ListTopicsRequest listTopicsRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ListTopicsResult call() throws Exception { ListTopicsResult result; try { result = listTopics(listTopicsRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(listTopicsRequest, result); return result; } }); } /** *

* The DeletePlatformApplication action deletes a platform * application object for one of the supported push notification * services, such as APNS and GCM. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param deletePlatformApplicationRequest Container for the necessary * parameters to execute the DeletePlatformApplication operation on * AmazonSNS. * * @return A Java Future object containing the response from the * DeletePlatformApplication service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future deletePlatformApplicationAsync(final DeletePlatformApplicationRequest deletePlatformApplicationRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { deletePlatformApplication(deletePlatformApplicationRequest); return null; } }); } /** *

* The DeletePlatformApplication action deletes a platform * application object for one of the supported push notification * services, such as APNS and GCM. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param deletePlatformApplicationRequest Container for the necessary * parameters to execute the DeletePlatformApplication operation on * AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * DeletePlatformApplication service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future deletePlatformApplicationAsync( final DeletePlatformApplicationRequest deletePlatformApplicationRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { try { deletePlatformApplication(deletePlatformApplicationRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(deletePlatformApplicationRequest, null); return null; } }); } /** *

* The ListPlatformApplications action lists the platform * application objects for the supported push notification services, such * as APNS and GCM. The results for ListPlatformApplications * are paginated and return a limited list of applications, up to 100. If * additional records are available after the first page results, then a * NextToken string will be returned. To receive the next page, you call * ListPlatformApplications using the NextToken string * received from the previous call. When there are no more records to * return, NextToken will be null. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param listPlatformApplicationsRequest Container for the necessary * parameters to execute the ListPlatformApplications operation on * AmazonSNS. * * @return A Java Future object containing the response from the * ListPlatformApplications service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future listPlatformApplicationsAsync(final ListPlatformApplicationsRequest listPlatformApplicationsRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ListPlatformApplicationsResult call() throws Exception { return listPlatformApplications(listPlatformApplicationsRequest); } }); } /** *

* The ListPlatformApplications action lists the platform * application objects for the supported push notification services, such * as APNS and GCM. The results for ListPlatformApplications * are paginated and return a limited list of applications, up to 100. If * additional records are available after the first page results, then a * NextToken string will be returned. To receive the next page, you call * ListPlatformApplications using the NextToken string * received from the previous call. When there are no more records to * return, NextToken will be null. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param listPlatformApplicationsRequest Container for the necessary * parameters to execute the ListPlatformApplications operation on * AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * ListPlatformApplications service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future listPlatformApplicationsAsync( final ListPlatformApplicationsRequest listPlatformApplicationsRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ListPlatformApplicationsResult call() throws Exception { ListPlatformApplicationsResult result; try { result = listPlatformApplications(listPlatformApplicationsRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(listPlatformApplicationsRequest, result); return result; } }); } /** *

* The SetEndpointAttributes action sets the attributes for * an endpoint for a device on one of the supported push notification * services, such as GCM and APNS. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param setEndpointAttributesRequest Container for the necessary * parameters to execute the SetEndpointAttributes operation on * AmazonSNS. * * @return A Java Future object containing the response from the * SetEndpointAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future setEndpointAttributesAsync(final SetEndpointAttributesRequest setEndpointAttributesRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { setEndpointAttributes(setEndpointAttributesRequest); return null; } }); } /** *

* The SetEndpointAttributes action sets the attributes for * an endpoint for a device on one of the supported push notification * services, such as GCM and APNS. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param setEndpointAttributesRequest Container for the necessary * parameters to execute the SetEndpointAttributes operation on * AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * SetEndpointAttributes service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future setEndpointAttributesAsync( final SetEndpointAttributesRequest setEndpointAttributesRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { try { setEndpointAttributes(setEndpointAttributesRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(setEndpointAttributesRequest, null); return null; } }); } /** *

* The Unsubscribe action deletes a subscription. If the * subscription requires authentication for deletion, only the owner of * the subscription or the topic's owner can unsubscribe, and an AWS * signature is required. If the Unsubscribe call does not * require authentication and the requester is not the subscription * owner, a final cancellation message is delivered to the endpoint, so * that the endpoint owner can easily resubscribe to the topic if the * Unsubscribe request was unintended. *

* * @param unsubscribeRequest Container for the necessary parameters to * execute the Unsubscribe operation on AmazonSNS. * * @return A Java Future object containing the response from the * Unsubscribe service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future unsubscribeAsync(final UnsubscribeRequest unsubscribeRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { unsubscribe(unsubscribeRequest); return null; } }); } /** *

* The Unsubscribe action deletes a subscription. If the * subscription requires authentication for deletion, only the owner of * the subscription or the topic's owner can unsubscribe, and an AWS * signature is required. If the Unsubscribe call does not * require authentication and the requester is not the subscription * owner, a final cancellation message is delivered to the endpoint, so * that the endpoint owner can easily resubscribe to the topic if the * Unsubscribe request was unintended. *

* * @param unsubscribeRequest Container for the necessary parameters to * execute the Unsubscribe operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * Unsubscribe service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future unsubscribeAsync( final UnsubscribeRequest unsubscribeRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { try { unsubscribe(unsubscribeRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(unsubscribeRequest, null); return null; } }); } /** *

* The DeleteTopic action deletes a topic and all its * subscriptions. Deleting a topic might prevent some messages previously * sent to the topic from being delivered to subscribers. This action is * idempotent, so deleting a topic that does not exist does not result in * an error. *

* * @param deleteTopicRequest Container for the necessary parameters to * execute the DeleteTopic operation on AmazonSNS. * * @return A Java Future object containing the response from the * DeleteTopic service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future deleteTopicAsync(final DeleteTopicRequest deleteTopicRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { deleteTopic(deleteTopicRequest); return null; } }); } /** *

* The DeleteTopic action deletes a topic and all its * subscriptions. Deleting a topic might prevent some messages previously * sent to the topic from being delivered to subscribers. This action is * idempotent, so deleting a topic that does not exist does not result in * an error. *

* * @param deleteTopicRequest Container for the necessary parameters to * execute the DeleteTopic operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * DeleteTopic service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future deleteTopicAsync( final DeleteTopicRequest deleteTopicRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { try { deleteTopic(deleteTopicRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(deleteTopicRequest, null); return null; } }); } /** *

* The GetPlatformApplicationAttributes action retrieves the * attributes of the platform application object for the supported push * notification services, such as APNS and GCM. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param getPlatformApplicationAttributesRequest Container for the * necessary parameters to execute the GetPlatformApplicationAttributes * operation on AmazonSNS. * * @return A Java Future object containing the response from the * GetPlatformApplicationAttributes service method, as returned by * AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future getPlatformApplicationAttributesAsync(final GetPlatformApplicationAttributesRequest getPlatformApplicationAttributesRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public GetPlatformApplicationAttributesResult call() throws Exception { return getPlatformApplicationAttributes(getPlatformApplicationAttributesRequest); } }); } /** *

* The GetPlatformApplicationAttributes action retrieves the * attributes of the platform application object for the supported push * notification services, such as APNS and GCM. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param getPlatformApplicationAttributesRequest Container for the * necessary parameters to execute the GetPlatformApplicationAttributes * operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * GetPlatformApplicationAttributes service method, as returned by * AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future getPlatformApplicationAttributesAsync( final GetPlatformApplicationAttributesRequest getPlatformApplicationAttributesRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public GetPlatformApplicationAttributesResult call() throws Exception { GetPlatformApplicationAttributesResult result; try { result = getPlatformApplicationAttributes(getPlatformApplicationAttributesRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(getPlatformApplicationAttributesRequest, result); return result; } }); } /** *

* The SetPlatformApplicationAttributes action sets the * attributes of the platform application object for the supported push * notification services, such as APNS and GCM. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param setPlatformApplicationAttributesRequest Container for the * necessary parameters to execute the SetPlatformApplicationAttributes * operation on AmazonSNS. * * @return A Java Future object containing the response from the * SetPlatformApplicationAttributes service method, as returned by * AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future setPlatformApplicationAttributesAsync(final SetPlatformApplicationAttributesRequest setPlatformApplicationAttributesRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { setPlatformApplicationAttributes(setPlatformApplicationAttributesRequest); return null; } }); } /** *

* The SetPlatformApplicationAttributes action sets the * attributes of the platform application object for the supported push * notification services, such as APNS and GCM. For more information, see * Using Amazon SNS Mobile Push Notifications * . *

* * @param setPlatformApplicationAttributesRequest Container for the * necessary parameters to execute the SetPlatformApplicationAttributes * operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * SetPlatformApplicationAttributes service method, as returned by * AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future setPlatformApplicationAttributesAsync( final SetPlatformApplicationAttributesRequest setPlatformApplicationAttributesRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { try { setPlatformApplicationAttributes(setPlatformApplicationAttributesRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(setPlatformApplicationAttributesRequest, null); return null; } }); } /** *

* The AddPermission action adds a statement to a topic's * access control policy, granting access for the specified AWS accounts * to the specified actions. *

* * @param addPermissionRequest Container for the necessary parameters to * execute the AddPermission operation on AmazonSNS. * * @return A Java Future object containing the response from the * AddPermission service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future addPermissionAsync(final AddPermissionRequest addPermissionRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { addPermission(addPermissionRequest); return null; } }); } /** *

* The AddPermission action adds a statement to a topic's * access control policy, granting access for the specified AWS accounts * to the specified actions. *

* * @param addPermissionRequest Container for the necessary parameters to * execute the AddPermission operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * AddPermission service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future addPermissionAsync( final AddPermissionRequest addPermissionRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public Void call() throws Exception { try { addPermission(addPermissionRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(addPermissionRequest, null); return null; } }); } /** *

* The ListEndpointsByPlatformApplication action lists the * endpoints and endpoint attributes for devices in a supported push * notification service, such as GCM and APNS. The results for * ListEndpointsByPlatformApplication are paginated and * return a limited list of endpoints, up to 100. If additional records * are available after the first page results, then a NextToken string * will be returned. To receive the next page, you call * ListEndpointsByPlatformApplication again using the * NextToken string received from the previous call. When there are no * more records to return, NextToken will be null. For more information, * see * Using Amazon SNS Mobile Push Notifications * . *

* * @param listEndpointsByPlatformApplicationRequest Container for the * necessary parameters to execute the ListEndpointsByPlatformApplication * operation on AmazonSNS. * * @return A Java Future object containing the response from the * ListEndpointsByPlatformApplication service method, as returned by * AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future listEndpointsByPlatformApplicationAsync(final ListEndpointsByPlatformApplicationRequest listEndpointsByPlatformApplicationRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ListEndpointsByPlatformApplicationResult call() throws Exception { return listEndpointsByPlatformApplication(listEndpointsByPlatformApplicationRequest); } }); } /** *

* The ListEndpointsByPlatformApplication action lists the * endpoints and endpoint attributes for devices in a supported push * notification service, such as GCM and APNS. The results for * ListEndpointsByPlatformApplication are paginated and * return a limited list of endpoints, up to 100. If additional records * are available after the first page results, then a NextToken string * will be returned. To receive the next page, you call * ListEndpointsByPlatformApplication again using the * NextToken string received from the previous call. When there are no * more records to return, NextToken will be null. For more information, * see * Using Amazon SNS Mobile Push Notifications * . *

* * @param listEndpointsByPlatformApplicationRequest Container for the * necessary parameters to execute the ListEndpointsByPlatformApplication * operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * ListEndpointsByPlatformApplication service method, as returned by * AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future listEndpointsByPlatformApplicationAsync( final ListEndpointsByPlatformApplicationRequest listEndpointsByPlatformApplicationRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ListEndpointsByPlatformApplicationResult call() throws Exception { ListEndpointsByPlatformApplicationResult result; try { result = listEndpointsByPlatformApplication(listEndpointsByPlatformApplicationRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(listEndpointsByPlatformApplicationRequest, result); return result; } }); } /** *

* The ListSubscriptionsByTopic action returns a list of the * subscriptions to a specific topic. Each call returns a limited list of * subscriptions, up to 100. If there are more subscriptions, a * NextToken is also returned. Use the * NextToken parameter in a new * ListSubscriptionsByTopic call to get further results. *

* * @param listSubscriptionsByTopicRequest Container for the necessary * parameters to execute the ListSubscriptionsByTopic operation on * AmazonSNS. * * @return A Java Future object containing the response from the * ListSubscriptionsByTopic service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future listSubscriptionsByTopicAsync(final ListSubscriptionsByTopicRequest listSubscriptionsByTopicRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ListSubscriptionsByTopicResult call() throws Exception { return listSubscriptionsByTopic(listSubscriptionsByTopicRequest); } }); } /** *

* The ListSubscriptionsByTopic action returns a list of the * subscriptions to a specific topic. Each call returns a limited list of * subscriptions, up to 100. If there are more subscriptions, a * NextToken is also returned. Use the * NextToken parameter in a new * ListSubscriptionsByTopic call to get further results. *

* * @param listSubscriptionsByTopicRequest Container for the necessary * parameters to execute the ListSubscriptionsByTopic operation on * AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the * ListSubscriptionsByTopic service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future listSubscriptionsByTopicAsync( final ListSubscriptionsByTopicRequest listSubscriptionsByTopicRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public ListSubscriptionsByTopicResult call() throws Exception { ListSubscriptionsByTopicResult result; try { result = listSubscriptionsByTopic(listSubscriptionsByTopicRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(listSubscriptionsByTopicRequest, result); return result; } }); } /** *

* The Publish action sends a message to all of a topic's * subscribed endpoints. When a messageId is returned, the * message has been saved and Amazon SNS will attempt to deliver it to * the topic's subscribers shortly. The format of the outgoing message to * each subscribed endpoint depends on the notification protocol * selected. *

*

* To use the Publish action for sending a message to a * mobile endpoint, such as an app on a Kindle device or mobile phone, * you must specify the EndpointArn. The EndpointArn is returned when * making a call with the CreatePlatformEndpoint action. The * second example below shows a request and response for publishing to a * mobile endpoint. *

* * @param publishRequest Container for the necessary parameters to * execute the Publish operation on AmazonSNS. * * @return A Java Future object containing the response from the Publish * service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future publishAsync(final PublishRequest publishRequest) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public PublishResult call() throws Exception { return publish(publishRequest); } }); } /** *

* The Publish action sends a message to all of a topic's * subscribed endpoints. When a messageId is returned, the * message has been saved and Amazon SNS will attempt to deliver it to * the topic's subscribers shortly. The format of the outgoing message to * each subscribed endpoint depends on the notification protocol * selected. *

*

* To use the Publish action for sending a message to a * mobile endpoint, such as an app on a Kindle device or mobile phone, * you must specify the EndpointArn. The EndpointArn is returned when * making a call with the CreatePlatformEndpoint action. The * second example below shows a request and response for publishing to a * mobile endpoint. *

* * @param publishRequest Container for the necessary parameters to * execute the Publish operation on AmazonSNS. * @param asyncHandler Asynchronous callback handler for events in the * life-cycle of the request. Users could provide the implementation of * the four callback methods in this interface to process the operation * result or handle the exception. * * @return A Java Future object containing the response from the Publish * service method, as returned by AmazonSNS. * * * @throws AmazonClientException * If any internal errors are encountered inside the client while * attempting to make the request or handle the response. For example * if a network connection is not available. * @throws AmazonServiceException * If an error response is returned by AmazonSNS indicating * either a problem with the data in the request, or a server side issue. */ public Future publishAsync( final PublishRequest publishRequest, final AsyncHandler asyncHandler) throws AmazonServiceException, AmazonClientException { return executorService.submit(new Callable() { public PublishResult call() throws Exception { PublishResult result; try { result = publish(publishRequest); } catch (Exception ex) { asyncHandler.onError(ex); throw ex; } asyncHandler.onSuccess(publishRequest, result); return result; } }); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy