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

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

The newest version!
/*
 * Copyright 2010-2015 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(); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* Deletes the endpoint from Amazon SNS. This action is idempotent. 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; } }); } /** *

* Deletes the endpoint from Amazon SNS. This action is idempotent. 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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 * . *

*

* When using CreatePlatformEndpoint with Baidu, two * attributes must be provided: ChannelId and UserId. The token field * must also contain the ChannelId. For more information, see * Creating an Amazon SNS Endpoint for Baidu * . *

* * @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); } }); } /** *

* 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 * . *

*

* When using CreatePlatformEndpoint with Baidu, two * attributes must be provided: ChannelId and UserId. The token field * must also contain the ChannelId. For more information, see * Creating an Amazon SNS Endpoint for Baidu * . *

* * @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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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; } }); } /** *

* 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); } }); } /** *

* 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 - 2024 Weber Informatics LLC | Privacy Policy