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

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

Go to download

The AWS Java SDK for Amazon SNS module holds the client classes that is used for communicating with Amazon Simple Notification Service

There is a newer version: 1.12.770
Show 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 com.amazonaws.*;
import com.amazonaws.regions.*;
import com.amazonaws.services.sns.model.*;

/**
 * Interface for accessing AmazonSNS.
 * 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 interface AmazonSNS { /** * Overrides the default endpoint for this client ("https://sns.us-east-1.amazonaws.com"). * Callers can use this method to control which AWS region they want to work with. *

* Callers can pass in just the endpoint (ex: "sns.us-east-1.amazonaws.com") or a full * URL, including the protocol (ex: "https://sns.us-east-1.amazonaws.com"). If the * protocol is not specified here, the default protocol from this client's * {@link ClientConfiguration} will be used, which by default is HTTPS. *

* For more information on using AWS regions with the AWS SDK for Java, and * a complete list of all available endpoints for all AWS services, see: * * http://developer.amazonwebservices.com/connect/entry.jspa?externalID=3912 *

* This method is not threadsafe. An endpoint should be configured when the * client is created and before any service requests are made. Changing it * afterwards creates inevitable race conditions for any service requests in * transit or retrying. * * @param endpoint * The endpoint (ex: "sns.us-east-1.amazonaws.com") or a full URL, * including the protocol (ex: "https://sns.us-east-1.amazonaws.com") of * the region specific AWS endpoint this client will communicate * with. * * @throws IllegalArgumentException * If any problems are detected with the specified endpoint. */ public void setEndpoint(String endpoint) throws java.lang.IllegalArgumentException; /** * An alternative to {@link AmazonSNS#setEndpoint(String)}, sets the * regional endpoint for this client's service calls. Callers can use this * method to control which AWS region they want to work with. *

* By default, all service endpoints in all regions use the https protocol. * To use http instead, specify it in the {@link ClientConfiguration} * supplied at construction. *

* This method is not threadsafe. A region should be configured when the * client is created and before any service requests are made. Changing it * afterwards creates inevitable race conditions for any service requests in * transit or retrying. * * @param region * The region this client will communicate with. See * {@link Region#getRegion(com.amazonaws.regions.Regions)} for * accessing a given region. * @throws java.lang.IllegalArgumentException * If the given region is null, or if this service isn't * available in the given region. See * {@link Region#isServiceSupported(String)} * @see Region#getRegion(com.amazonaws.regions.Regions) * @see Region#createClient(Class, com.amazonaws.auth.AWSCredentialsProvider, ClientConfiguration) */ public void setRegion(Region region) throws java.lang.IllegalArgumentException; /** *

* 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 service method on * AmazonSNS. * * @return The response from the ConfirmSubscription service method, as * returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws SubscriptionLimitExceededException * @throws InvalidParameterException * * @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 ConfirmSubscriptionResult confirmSubscription(ConfirmSubscriptionRequest confirmSubscriptionRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on * AmazonSNS. * * @return The response from the CreatePlatformApplication service * method, as returned by AmazonSNS. * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 CreatePlatformApplicationResult createPlatformApplication(CreatePlatformApplicationRequest createPlatformApplicationRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on * AmazonSNS. * * @return The response from the GetTopicAttributes service method, as * returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 GetTopicAttributesResult getTopicAttributes(GetTopicAttributesRequest getTopicAttributesRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on AmazonSNS. * * @return The response from the Subscribe service method, as returned by * AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws SubscriptionLimitExceededException * @throws InvalidParameterException * * @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 SubscribeResult subscribe(SubscribeRequest subscribeRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on AmazonSNS. * * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void deleteEndpoint(DeleteEndpointRequest deleteEndpointRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on * AmazonSNS. * * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void setTopicAttributes(SetTopicAttributesRequest setTopicAttributesRequest) throws AmazonServiceException, AmazonClientException; /** *

* Removes a statement from a topic's access control policy. *

* * @param removePermissionRequest Container for the necessary parameters * to execute the RemovePermission service method on AmazonSNS. * * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void removePermission(RemovePermissionRequest removePermissionRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on * AmazonSNS. * * @return The response from the GetEndpointAttributes service method, as * returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 GetEndpointAttributesResult getEndpointAttributes(GetEndpointAttributesRequest getEndpointAttributesRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on AmazonSNS. * * @return The response from the ListSubscriptions service method, as * returned by AmazonSNS. * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListSubscriptionsResult listSubscriptions(ListSubscriptionsRequest listSubscriptionsRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on * AmazonSNS. * * @return The response from the CreatePlatformEndpoint service method, * as returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 CreatePlatformEndpointResult createPlatformEndpoint(CreatePlatformEndpointRequest createPlatformEndpointRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on * AmazonSNS. * * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void setSubscriptionAttributes(SetSubscriptionAttributesRequest setSubscriptionAttributesRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on AmazonSNS. * * @return The response from the CreateTopic service method, as returned * by AmazonSNS. * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * @throws TopicLimitExceededException * * @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 CreateTopicResult createTopic(CreateTopicRequest createTopicRequest) throws AmazonServiceException, AmazonClientException; /** *

* Returns all of the properties of a subscription. *

* * @param getSubscriptionAttributesRequest Container for the necessary * parameters to execute the GetSubscriptionAttributes service method on * AmazonSNS. * * @return The response from the GetSubscriptionAttributes service * method, as returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 GetSubscriptionAttributesResult getSubscriptionAttributes(GetSubscriptionAttributesRequest getSubscriptionAttributesRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on AmazonSNS. * * @return The response from the ListTopics service method, as returned * by AmazonSNS. * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListTopicsResult listTopics(ListTopicsRequest listTopicsRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on * AmazonSNS. * * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void deletePlatformApplication(DeletePlatformApplicationRequest deletePlatformApplicationRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on * AmazonSNS. * * @return The response from the ListPlatformApplications service method, * as returned by AmazonSNS. * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListPlatformApplicationsResult listPlatformApplications(ListPlatformApplicationsRequest listPlatformApplicationsRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on * AmazonSNS. * * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void setEndpointAttributes(SetEndpointAttributesRequest setEndpointAttributesRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on AmazonSNS. * * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void unsubscribe(UnsubscribeRequest unsubscribeRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on AmazonSNS. * * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void deleteTopic(DeleteTopicRequest deleteTopicRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 * service method on AmazonSNS. * * @return The response from the GetPlatformApplicationAttributes service * method, as returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 GetPlatformApplicationAttributesResult getPlatformApplicationAttributes(GetPlatformApplicationAttributesRequest getPlatformApplicationAttributesRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 * service method on AmazonSNS. * * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void setPlatformApplicationAttributes(SetPlatformApplicationAttributesRequest setPlatformApplicationAttributesRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on AmazonSNS. * * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void addPermission(AddPermissionRequest addPermissionRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 * service method on AmazonSNS. * * @return The response from the ListEndpointsByPlatformApplication * service method, as returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListEndpointsByPlatformApplicationResult listEndpointsByPlatformApplication(ListEndpointsByPlatformApplicationRequest listEndpointsByPlatformApplicationRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on * AmazonSNS. * * @return The response from the ListSubscriptionsByTopic service method, * as returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListSubscriptionsByTopicResult listSubscriptionsByTopic(ListSubscriptionsByTopicRequest listSubscriptionsByTopicRequest) throws AmazonServiceException, AmazonClientException; /** *

* 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 service method on AmazonSNS. * * @return The response from the Publish service method, as returned by * AmazonSNS. * * @throws NotFoundException * @throws PlatformApplicationDisabledException * @throws EndpointDisabledException * @throws InvalidParameterValueException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 PublishResult publish(PublishRequest publishRequest) throws AmazonServiceException, AmazonClientException; /** *

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

* * @return The response from the ListSubscriptions service method, as * returned by AmazonSNS. * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListSubscriptionsResult listSubscriptions() throws AmazonServiceException, AmazonClientException; /** *

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

* * @return The response from the ListTopics service method, as returned * by AmazonSNS. * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListTopicsResult listTopics() throws AmazonServiceException, AmazonClientException; /** *

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

* * @return The response from the ListPlatformApplications service method, * as returned by AmazonSNS. * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListPlatformApplicationsResult listPlatformApplications() throws AmazonServiceException, AmazonClientException; /** *

* 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 topicArn The ARN of the topic for which you wish to confirm a * subscription. * @param token Short-lived token sent to an endpoint during the * Subscribe action. * @param authenticateOnUnsubscribe Disallows unauthenticated * unsubscribes of the subscription. If the value of this parameter is * true and the request has an AWS signature, then only the * topic owner and the subscription owner can unsubscribe the endpoint. * The unsubscribe action requires AWS authentication. * * @return The response from the ConfirmSubscription service method, as * returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws SubscriptionLimitExceededException * @throws InvalidParameterException * * @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 ConfirmSubscriptionResult confirmSubscription(String topicArn, String token, String authenticateOnUnsubscribe) throws AmazonServiceException, AmazonClientException; /** *

* 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 topicArn The ARN of the topic for which you wish to confirm a * subscription. * @param token Short-lived token sent to an endpoint during the * Subscribe action. * * @return The response from the ConfirmSubscription service method, as * returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws SubscriptionLimitExceededException * @throws InvalidParameterException * * @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 ConfirmSubscriptionResult confirmSubscription(String topicArn, String token) throws AmazonServiceException, AmazonClientException; /** *

* Returns all of the properties of a topic. Topic properties returned * might differ based on the authorization of the user. *

* * @param topicArn The ARN of the topic whose properties you want to get. * * @return The response from the GetTopicAttributes service method, as * returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 GetTopicAttributesResult getTopicAttributes(String topicArn) throws AmazonServiceException, AmazonClientException; /** *

* 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 topicArn The ARN of the topic you want to subscribe to. * @param protocol The protocol you want to use. Supported protocols * include:
  • http -- delivery of JSON-encoded * message via HTTP POST
  • https -- delivery of * JSON-encoded message via HTTPS POST
  • email -- * delivery of message via SMTP
  • email-json -- * delivery of JSON-encoded message via SMTP
  • sms -- * delivery of message via SMS
  • sqs -- delivery of * JSON-encoded message to an Amazon SQS queue
  • *
  • application -- delivery of JSON-encoded message to an * EndpointArn for a mobile app and device.
* @param endpoint The endpoint that you want to receive notifications. * Endpoints vary by protocol:
  • For the http * protocol, the endpoint is an URL beginning with "http://"
  • For * the https protocol, the endpoint is a URL beginning with * "https://"
  • For the email protocol, the endpoint * is an email address
  • For the email-json protocol, * the endpoint is an email address
  • For the sms * protocol, the endpoint is a phone number of an SMS-enabled device
  • *
  • For the sqs protocol, the endpoint is the ARN of an * Amazon SQS queue
  • For the application protocol, * the endpoint is the EndpointArn of a mobile app and device.
* * @return The response from the Subscribe service method, as returned by * AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws SubscriptionLimitExceededException * @throws InvalidParameterException * * @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 SubscribeResult subscribe(String topicArn, String protocol, String endpoint) throws AmazonServiceException, AmazonClientException; /** *

* Allows a topic owner to set an attribute of the topic to a new value. *

* * @param topicArn The ARN of the topic to modify. * @param attributeName The name of the attribute you want to set. Only a * subset of the topic's attributes are mutable.

Valid values: * Policy | DisplayName | * DeliveryPolicy * @param attributeValue The new value for the attribute. * * @return The response from the SetTopicAttributes service method, as * returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void setTopicAttributes(String topicArn, String attributeName, String attributeValue) throws AmazonServiceException, AmazonClientException; /** *

* Removes a statement from a topic's access control policy. *

* * @param topicArn The ARN of the topic whose access control policy you * wish to modify. * @param label The unique label of the statement you want to remove. * * @return The response from the RemovePermission service method, as * returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void removePermission(String topicArn, String label) throws AmazonServiceException, AmazonClientException; /** *

* 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 nextToken Token returned by the previous * ListSubscriptions request. * * @return The response from the ListSubscriptions service method, as * returned by AmazonSNS. * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListSubscriptionsResult listSubscriptions(String nextToken) throws AmazonServiceException, AmazonClientException; /** *

* Allows a subscription owner to set an attribute of the topic to a new * value. *

* * @param subscriptionArn The ARN of the subscription to modify. * @param attributeName The name of the attribute you want to set. Only a * subset of the subscriptions attributes are mutable.

Valid values: * DeliveryPolicy | RawMessageDelivery * @param attributeValue The new value for the attribute in JSON format. * * @return The response from the SetSubscriptionAttributes service * method, as returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void setSubscriptionAttributes(String subscriptionArn, String attributeName, String attributeValue) throws AmazonServiceException, AmazonClientException; /** *

* 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 name The name of the topic you want to create.

Constraints: * Topic names must be made up of only uppercase and lowercase ASCII * letters, numbers, underscores, and hyphens, and must be between 1 and * 256 characters long. * * @return The response from the CreateTopic service method, as returned * by AmazonSNS. * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * @throws TopicLimitExceededException * * @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 CreateTopicResult createTopic(String name) throws AmazonServiceException, AmazonClientException; /** *

* Returns all of the properties of a subscription. *

* * @param subscriptionArn The ARN of the subscription whose properties * you want to get. * * @return The response from the GetSubscriptionAttributes service * method, as returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 GetSubscriptionAttributesResult getSubscriptionAttributes(String subscriptionArn) throws AmazonServiceException, AmazonClientException; /** *

* 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 nextToken Token returned by the previous * ListTopics request. * * @return The response from the ListTopics service method, as returned * by AmazonSNS. * * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListTopicsResult listTopics(String nextToken) throws AmazonServiceException, AmazonClientException; /** *

* 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 subscriptionArn The ARN of the subscription to be deleted. * * @return The response from the Unsubscribe service method, as returned * by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void unsubscribe(String subscriptionArn) throws AmazonServiceException, AmazonClientException; /** *

* 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 topicArn The ARN of the topic you want to delete. * http://sns.us-east-1.amazonaws.com/ * ?TopicArn=arn%3Aaws%3Asns%3Aus-east-1%3A123456789012%3AMy-Topic * &Action=DeleteTopic &SignatureVersion=2 &SignatureMethod=HmacSHA256 * &Timestamp=2010-03-31T12%3A00%3A00.000Z &AWSAccessKeyId=(AWS Access * Key ID) * &Signature=DjHBa%2BbYCKQAzctOPnLP7MbHnrHT3%2FK3kFEZjwcf9%2FU%3D * * fba800b9-3765-11df-8cf3-c58c53254dfb * * * * @return The response from the DeleteTopic service method, as returned * by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void deleteTopic(String topicArn) throws AmazonServiceException, AmazonClientException; /** *

* Adds a statement to a topic's access control policy, granting access * for the specified AWS accounts to the specified actions. *

* * @param topicArn The ARN of the topic whose access control policy you * wish to modify. * @param label A unique identifier for the new policy statement. * @param aWSAccountIds The AWS account IDs of the users (principals) who * will be given access to the specified actions. The users must have AWS * accounts, but do not need to be signed up for this service. * @param actionNames The action you want to allow for the specified * principal(s).

Valid values: any Amazon SNS action name. * * @return The response from the AddPermission service method, as * returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 void addPermission(String topicArn, String label, java.util.List aWSAccountIds, java.util.List actionNames) throws AmazonServiceException, AmazonClientException; /** *

* 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 topicArn The ARN of the topic for which you wish to find * subscriptions. * @param nextToken Token returned by the previous * ListSubscriptionsByTopic request. * * @return The response from the ListSubscriptionsByTopic service method, * as returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListSubscriptionsByTopicResult listSubscriptionsByTopic(String topicArn, String nextToken) throws AmazonServiceException, AmazonClientException; /** *

* 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 topicArn The ARN of the topic for which you wish to find * subscriptions. * * @return The response from the ListSubscriptionsByTopic service method, * as returned by AmazonSNS. * * @throws NotFoundException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 ListSubscriptionsByTopicResult listSubscriptionsByTopic(String topicArn) throws AmazonServiceException, AmazonClientException; /** *

* 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 topicArn The topic you want to publish to. * @param message The message you want to send to the topic.

If you * want to send the same message to all transport protocols, include the * text of the message as a String value.

If you want to send * different messages for each transport protocol, set the value of the * MessageStructure parameter to json and use a * JSON object for the Message parameter. See the Examples * section for the format of the JSON object.

Constraints: Messages * must be UTF-8 encoded strings at most 256 KB in size (262144 bytes, * not 262144 characters).

JSON-specific constraints:

  • Keys in * the JSON object that correspond to supported transport protocols must * have simple JSON string values.
  • The values will be parsed * (unescaped) before they are used in outgoing messages.
  • *
  • Outbound notifications are JSON encoded (meaning that the * characters will be reescaped for sending).
  • Values have a * minimum length of 0 (the empty string, "", is allowed).
  • *
  • Values have a maximum length bounded by the overall message size * (so, including multiple protocols may limit message sizes).
  • *
  • Non-string values will cause the key to be ignored.
  • Keys * that do not correspond to supported transport protocols are * ignored.
  • Duplicate keys are not allowed.
  • Failure to * parse or validate any key or value in the message will cause the * Publish call to return an error (no partial * delivery).
* * @return The response from the Publish service method, as returned by * AmazonSNS. * * @throws NotFoundException * @throws PlatformApplicationDisabledException * @throws EndpointDisabledException * @throws InvalidParameterValueException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 PublishResult publish(String topicArn, String message) throws AmazonServiceException, AmazonClientException; /** *

* 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 topicArn The topic you want to publish to. * @param message The message you want to send to the topic.

If you * want to send the same message to all transport protocols, include the * text of the message as a String value.

If you want to send * different messages for each transport protocol, set the value of the * MessageStructure parameter to json and use a * JSON object for the Message parameter. See the Examples * section for the format of the JSON object.

Constraints: Messages * must be UTF-8 encoded strings at most 256 KB in size (262144 bytes, * not 262144 characters).

JSON-specific constraints:

  • Keys in * the JSON object that correspond to supported transport protocols must * have simple JSON string values.
  • The values will be parsed * (unescaped) before they are used in outgoing messages.
  • *
  • Outbound notifications are JSON encoded (meaning that the * characters will be reescaped for sending).
  • Values have a * minimum length of 0 (the empty string, "", is allowed).
  • *
  • Values have a maximum length bounded by the overall message size * (so, including multiple protocols may limit message sizes).
  • *
  • Non-string values will cause the key to be ignored.
  • Keys * that do not correspond to supported transport protocols are * ignored.
  • Duplicate keys are not allowed.
  • Failure to * parse or validate any key or value in the message will cause the * Publish call to return an error (no partial * delivery).
* @param subject Optional parameter to be used as the "Subject" line * when the message is delivered to email endpoints. This field will also * be included, if present, in the standard JSON messages delivered to * other endpoints.

Constraints: Subjects must be ASCII text that * begins with a letter, number, or punctuation mark; must not include * line breaks or control characters; and must be less than 100 * characters long. * * @return The response from the Publish service method, as returned by * AmazonSNS. * * @throws NotFoundException * @throws PlatformApplicationDisabledException * @throws EndpointDisabledException * @throws InvalidParameterValueException * @throws AuthorizationErrorException * @throws InternalErrorException * @throws InvalidParameterException * * @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 PublishResult publish(String topicArn, String message, String subject) throws AmazonServiceException, AmazonClientException; /** * Shuts down this client object, releasing any resources that might be held * open. This is an optional method, and callers are not expected to call * it, but can if they want to explicitly release any open resources. Once a * client has been shutdown, it should not be used to make any more * requests. */ public void shutdown(); /** * Returns additional metadata for a previously executed successful request, typically used for * debugging issues where a service isn't acting as expected. This data isn't considered part * of the result data returned by an operation, so it's available through this separate, * diagnostic interface. *

* Response metadata is only cached for a limited period of time, so if you need to access * this extra diagnostic information for an executed request, you should use this method * to retrieve it as soon as possible after executing a request. * * @param request * The originally executed request. * * @return The response metadata for the specified request, or null if none * is available. */ public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy