/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading namespace Xml { class XmlDocument; } // namespace Xml } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace SNS { namespace Model { class AddPermissionRequest; class CheckIfPhoneNumberIsOptedOutRequest; class ConfirmSubscriptionRequest; class CreatePlatformApplicationRequest; class CreatePlatformEndpointRequest; class CreateTopicRequest; class DeleteEndpointRequest; class DeletePlatformApplicationRequest; class DeleteTopicRequest; class GetEndpointAttributesRequest; class GetPlatformApplicationAttributesRequest; class GetSMSAttributesRequest; class GetSubscriptionAttributesRequest; class GetTopicAttributesRequest; class ListEndpointsByPlatformApplicationRequest; class ListPhoneNumbersOptedOutRequest; class ListPlatformApplicationsRequest; class ListSubscriptionsRequest; class ListSubscriptionsByTopicRequest; class ListTagsForResourceRequest; class ListTopicsRequest; class OptInPhoneNumberRequest; class PublishRequest; class RemovePermissionRequest; class SetEndpointAttributesRequest; class SetPlatformApplicationAttributesRequest; class SetSMSAttributesRequest; class SetSubscriptionAttributesRequest; class SetTopicAttributesRequest; class SubscribeRequest; class TagResourceRequest; class UnsubscribeRequest; class UntagResourceRequest; typedef Aws::Utils::Outcome AddPermissionOutcome; typedef Aws::Utils::Outcome CheckIfPhoneNumberIsOptedOutOutcome; typedef Aws::Utils::Outcome ConfirmSubscriptionOutcome; typedef Aws::Utils::Outcome CreatePlatformApplicationOutcome; typedef Aws::Utils::Outcome CreatePlatformEndpointOutcome; typedef Aws::Utils::Outcome CreateTopicOutcome; typedef Aws::Utils::Outcome DeleteEndpointOutcome; typedef Aws::Utils::Outcome DeletePlatformApplicationOutcome; typedef Aws::Utils::Outcome DeleteTopicOutcome; typedef Aws::Utils::Outcome GetEndpointAttributesOutcome; typedef Aws::Utils::Outcome GetPlatformApplicationAttributesOutcome; typedef Aws::Utils::Outcome GetSMSAttributesOutcome; typedef Aws::Utils::Outcome GetSubscriptionAttributesOutcome; typedef Aws::Utils::Outcome GetTopicAttributesOutcome; typedef Aws::Utils::Outcome ListEndpointsByPlatformApplicationOutcome; typedef Aws::Utils::Outcome ListPhoneNumbersOptedOutOutcome; typedef Aws::Utils::Outcome ListPlatformApplicationsOutcome; typedef Aws::Utils::Outcome ListSubscriptionsOutcome; typedef Aws::Utils::Outcome ListSubscriptionsByTopicOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome ListTopicsOutcome; typedef Aws::Utils::Outcome OptInPhoneNumberOutcome; typedef Aws::Utils::Outcome PublishOutcome; typedef Aws::Utils::Outcome RemovePermissionOutcome; typedef Aws::Utils::Outcome SetEndpointAttributesOutcome; typedef Aws::Utils::Outcome SetPlatformApplicationAttributesOutcome; typedef Aws::Utils::Outcome SetSMSAttributesOutcome; typedef Aws::Utils::Outcome SetSubscriptionAttributesOutcome; typedef Aws::Utils::Outcome SetTopicAttributesOutcome; typedef Aws::Utils::Outcome SubscribeOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UnsubscribeOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef std::future AddPermissionOutcomeCallable; typedef std::future CheckIfPhoneNumberIsOptedOutOutcomeCallable; typedef std::future ConfirmSubscriptionOutcomeCallable; typedef std::future CreatePlatformApplicationOutcomeCallable; typedef std::future CreatePlatformEndpointOutcomeCallable; typedef std::future CreateTopicOutcomeCallable; typedef std::future DeleteEndpointOutcomeCallable; typedef std::future DeletePlatformApplicationOutcomeCallable; typedef std::future DeleteTopicOutcomeCallable; typedef std::future GetEndpointAttributesOutcomeCallable; typedef std::future GetPlatformApplicationAttributesOutcomeCallable; typedef std::future GetSMSAttributesOutcomeCallable; typedef std::future GetSubscriptionAttributesOutcomeCallable; typedef std::future GetTopicAttributesOutcomeCallable; typedef std::future ListEndpointsByPlatformApplicationOutcomeCallable; typedef std::future ListPhoneNumbersOptedOutOutcomeCallable; typedef std::future ListPlatformApplicationsOutcomeCallable; typedef std::future ListSubscriptionsOutcomeCallable; typedef std::future ListSubscriptionsByTopicOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future ListTopicsOutcomeCallable; typedef std::future OptInPhoneNumberOutcomeCallable; typedef std::future PublishOutcomeCallable; typedef std::future RemovePermissionOutcomeCallable; typedef std::future SetEndpointAttributesOutcomeCallable; typedef std::future SetPlatformApplicationAttributesOutcomeCallable; typedef std::future SetSMSAttributesOutcomeCallable; typedef std::future SetSubscriptionAttributesOutcomeCallable; typedef std::future SetTopicAttributesOutcomeCallable; typedef std::future SubscribeOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UnsubscribeOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; } // namespace Model class SNSClient; typedef std::function&) > AddPermissionResponseReceivedHandler; typedef std::function&) > CheckIfPhoneNumberIsOptedOutResponseReceivedHandler; typedef std::function&) > ConfirmSubscriptionResponseReceivedHandler; typedef std::function&) > CreatePlatformApplicationResponseReceivedHandler; typedef std::function&) > CreatePlatformEndpointResponseReceivedHandler; typedef std::function&) > CreateTopicResponseReceivedHandler; typedef std::function&) > DeleteEndpointResponseReceivedHandler; typedef std::function&) > DeletePlatformApplicationResponseReceivedHandler; typedef std::function&) > DeleteTopicResponseReceivedHandler; typedef std::function&) > GetEndpointAttributesResponseReceivedHandler; typedef std::function&) > GetPlatformApplicationAttributesResponseReceivedHandler; typedef std::function&) > GetSMSAttributesResponseReceivedHandler; typedef std::function&) > GetSubscriptionAttributesResponseReceivedHandler; typedef std::function&) > GetTopicAttributesResponseReceivedHandler; typedef std::function&) > ListEndpointsByPlatformApplicationResponseReceivedHandler; typedef std::function&) > ListPhoneNumbersOptedOutResponseReceivedHandler; typedef std::function&) > ListPlatformApplicationsResponseReceivedHandler; typedef std::function&) > ListSubscriptionsResponseReceivedHandler; typedef std::function&) > ListSubscriptionsByTopicResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > ListTopicsResponseReceivedHandler; typedef std::function&) > OptInPhoneNumberResponseReceivedHandler; typedef std::function&) > PublishResponseReceivedHandler; typedef std::function&) > RemovePermissionResponseReceivedHandler; typedef std::function&) > SetEndpointAttributesResponseReceivedHandler; typedef std::function&) > SetPlatformApplicationAttributesResponseReceivedHandler; typedef std::function&) > SetSMSAttributesResponseReceivedHandler; typedef std::function&) > SetSubscriptionAttributesResponseReceivedHandler; typedef std::function&) > SetTopicAttributesResponseReceivedHandler; typedef std::function&) > SubscribeResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UnsubscribeResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; /** * 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 https://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.

*/ class AWS_SNS_API SNSClient : public Aws::Client::AWSXMLClient { public: typedef Aws::Client::AWSXMLClient BASECLASS; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SNSClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SNSClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ SNSClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~SNSClient(); /** * Converts any request object to a presigned URL with the GET method, using region for the signer and a timeout of 15 minutes. */ Aws::String ConvertRequestToPresignedUrl(const Aws::AmazonSerializableWebServiceRequest& requestToConvert, const char* region) const; /** *

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

See Also:

AWS * API Reference

*/ virtual Model::AddPermissionOutcome AddPermission(const Model::AddPermissionRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddPermissionOutcomeCallable AddPermissionCallable(const Model::AddPermissionRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddPermissionAsync(const Model::AddPermissionRequest& request, const AddPermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Accepts a phone number and indicates whether the phone holder has opted out * of receiving SMS messages from your account. You cannot send SMS messages to a * number that is opted out.

To resume sending messages, you can opt in the * number by using the OptInPhoneNumber action.

See * Also:

AWS * API Reference

*/ virtual Model::CheckIfPhoneNumberIsOptedOutOutcome CheckIfPhoneNumberIsOptedOut(const Model::CheckIfPhoneNumberIsOptedOutRequest& request) const; /** *

Accepts a phone number and indicates whether the phone holder has opted out * of receiving SMS messages from your account. You cannot send SMS messages to a * number that is opted out.

To resume sending messages, you can opt in the * number by using the OptInPhoneNumber action.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CheckIfPhoneNumberIsOptedOutOutcomeCallable CheckIfPhoneNumberIsOptedOutCallable(const Model::CheckIfPhoneNumberIsOptedOutRequest& request) const; /** *

Accepts a phone number and indicates whether the phone holder has opted out * of receiving SMS messages from your account. You cannot send SMS messages to a * number that is opted out.

To resume sending messages, you can opt in the * number by using the OptInPhoneNumber action.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CheckIfPhoneNumberIsOptedOutAsync(const Model::CheckIfPhoneNumberIsOptedOutRequest& request, const CheckIfPhoneNumberIsOptedOutResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

See * Also:

AWS * API Reference

*/ virtual Model::ConfirmSubscriptionOutcome ConfirmSubscription(const Model::ConfirmSubscriptionRequest& request) const; /** *

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

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ConfirmSubscriptionOutcomeCallable ConfirmSubscriptionCallable(const Model::ConfirmSubscriptionRequest& request) const; /** *

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

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ConfirmSubscriptionAsync(const Model::ConfirmSubscriptionRequest& request, const ConfirmSubscriptionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a platform application object for one of the supported push * notification services, such as APNS and GCM (Firebase Cloud Messaging), to which * devices and mobile apps may register. You must specify * PlatformPrincipal and PlatformCredential attributes * when using the CreatePlatformApplication action.

* PlatformPrincipal and PlatformCredential are received * from the notification service.

  • For ADM, * PlatformPrincipal is client id and * PlatformCredential is client secret.

  • *

    For Baidu, PlatformPrincipal is API * key and PlatformCredential is secret key.

    *
  • For APNS and APNS_SANDBOX, * PlatformPrincipal is SSL certificate and * PlatformCredential is private key.

  • *

    For GCM (Firebase Cloud Messaging), there is no * PlatformPrincipal and the PlatformCredential is * API key.

  • For MPNS, * PlatformPrincipal is TLS certificate and * PlatformCredential is private key.

  • *

    For WNS, PlatformPrincipal is Package * Security Identifier and PlatformCredential is secret * key.

You can use the returned * PlatformApplicationArn as an attribute for the * CreatePlatformEndpoint action.

See Also:

AWS * API Reference

*/ virtual Model::CreatePlatformApplicationOutcome CreatePlatformApplication(const Model::CreatePlatformApplicationRequest& request) const; /** *

Creates a platform application object for one of the supported push * notification services, such as APNS and GCM (Firebase Cloud Messaging), to which * devices and mobile apps may register. You must specify * PlatformPrincipal and PlatformCredential attributes * when using the CreatePlatformApplication action.

* PlatformPrincipal and PlatformCredential are received * from the notification service.

  • For ADM, * PlatformPrincipal is client id and * PlatformCredential is client secret.

  • *

    For Baidu, PlatformPrincipal is API * key and PlatformCredential is secret key.

    *
  • For APNS and APNS_SANDBOX, * PlatformPrincipal is SSL certificate and * PlatformCredential is private key.

  • *

    For GCM (Firebase Cloud Messaging), there is no * PlatformPrincipal and the PlatformCredential is * API key.

  • For MPNS, * PlatformPrincipal is TLS certificate and * PlatformCredential is private key.

  • *

    For WNS, PlatformPrincipal is Package * Security Identifier and PlatformCredential is secret * key.

You can use the returned * PlatformApplicationArn as an attribute for the * CreatePlatformEndpoint action.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreatePlatformApplicationOutcomeCallable CreatePlatformApplicationCallable(const Model::CreatePlatformApplicationRequest& request) const; /** *

Creates a platform application object for one of the supported push * notification services, such as APNS and GCM (Firebase Cloud Messaging), to which * devices and mobile apps may register. You must specify * PlatformPrincipal and PlatformCredential attributes * when using the CreatePlatformApplication action.

* PlatformPrincipal and PlatformCredential are received * from the notification service.

  • For ADM, * PlatformPrincipal is client id and * PlatformCredential is client secret.

  • *

    For Baidu, PlatformPrincipal is API * key and PlatformCredential is secret key.

    *
  • For APNS and APNS_SANDBOX, * PlatformPrincipal is SSL certificate and * PlatformCredential is private key.

  • *

    For GCM (Firebase Cloud Messaging), there is no * PlatformPrincipal and the PlatformCredential is * API key.

  • For MPNS, * PlatformPrincipal is TLS certificate and * PlatformCredential is private key.

  • *

    For WNS, PlatformPrincipal is Package * Security Identifier and PlatformCredential is secret * key.

You can use the returned * PlatformApplicationArn as an attribute for the * CreatePlatformEndpoint action.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreatePlatformApplicationAsync(const Model::CreatePlatformApplicationRequest& request, const CreatePlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an endpoint for a device and mobile app on one of the supported push * notification services, such as GCM (Firebase Cloud Messaging) and APNS. * CreatePlatformEndpoint requires the * PlatformApplicationArn that is returned from * CreatePlatformApplication. You can use the returned * EndpointArn 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.

See Also:

AWS * API Reference

*/ virtual Model::CreatePlatformEndpointOutcome CreatePlatformEndpoint(const Model::CreatePlatformEndpointRequest& request) const; /** *

Creates an endpoint for a device and mobile app on one of the supported push * notification services, such as GCM (Firebase Cloud Messaging) and APNS. * CreatePlatformEndpoint requires the * PlatformApplicationArn that is returned from * CreatePlatformApplication. You can use the returned * EndpointArn 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.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreatePlatformEndpointOutcomeCallable CreatePlatformEndpointCallable(const Model::CreatePlatformEndpointRequest& request) const; /** *

Creates an endpoint for a device and mobile app on one of the supported push * notification services, such as GCM (Firebase Cloud Messaging) and APNS. * CreatePlatformEndpoint requires the * PlatformApplicationArn that is returned from * CreatePlatformApplication. You can use the returned * EndpointArn 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.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreatePlatformEndpointAsync(const Model::CreatePlatformEndpointRequest& request, const CreatePlatformEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a topic to which notifications can be published. Users can create at * most 100,000 topics. For more information, see https://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.

See * Also:

AWS API * Reference

*/ virtual Model::CreateTopicOutcome CreateTopic(const Model::CreateTopicRequest& request) const; /** *

Creates a topic to which notifications can be published. Users can create at * most 100,000 topics. For more information, see https://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.

See * Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateTopicOutcomeCallable CreateTopicCallable(const Model::CreateTopicRequest& request) const; /** *

Creates a topic to which notifications can be published. Users can create at * most 100,000 topics. For more information, see https://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.

See * Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateTopicAsync(const Model::CreateTopicRequest& request, const CreateTopicResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the endpoint for a device and mobile app from Amazon SNS. This action * is idempotent. For more information, see Using Amazon * SNS Mobile Push Notifications.

When you delete an endpoint that is * also subscribed to a topic, then you must also unsubscribe the endpoint from the * topic.

See Also:

AWS * API Reference

*/ virtual Model::DeleteEndpointOutcome DeleteEndpoint(const Model::DeleteEndpointRequest& request) const; /** *

Deletes the endpoint for a device and mobile app from Amazon SNS. This action * is idempotent. For more information, see Using Amazon * SNS Mobile Push Notifications.

When you delete an endpoint that is * also subscribed to a topic, then you must also unsubscribe the endpoint from the * topic.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteEndpointOutcomeCallable DeleteEndpointCallable(const Model::DeleteEndpointRequest& request) const; /** *

Deletes the endpoint for a device and mobile app from Amazon SNS. This action * is idempotent. For more information, see Using Amazon * SNS Mobile Push Notifications.

When you delete an endpoint that is * also subscribed to a topic, then you must also unsubscribe the endpoint from the * topic.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteEndpointAsync(const Model::DeleteEndpointRequest& request, const DeleteEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a platform application object for one of the supported push * notification services, such as APNS and GCM (Firebase Cloud Messaging). For more * information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

*/ virtual Model::DeletePlatformApplicationOutcome DeletePlatformApplication(const Model::DeletePlatformApplicationRequest& request) const; /** *

Deletes a platform application object for one of the supported push * notification services, such as APNS and GCM (Firebase Cloud Messaging). For more * information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeletePlatformApplicationOutcomeCallable DeletePlatformApplicationCallable(const Model::DeletePlatformApplicationRequest& request) const; /** *

Deletes a platform application object for one of the supported push * notification services, such as APNS and GCM (Firebase Cloud Messaging). For more * information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeletePlatformApplicationAsync(const Model::DeletePlatformApplicationRequest& request, const DeletePlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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.

See Also:

AWS API * Reference

*/ virtual Model::DeleteTopicOutcome DeleteTopic(const Model::DeleteTopicRequest& request) const; /** *

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.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteTopicOutcomeCallable DeleteTopicCallable(const Model::DeleteTopicRequest& request) const; /** *

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.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteTopicAsync(const Model::DeleteTopicRequest& request, const DeleteTopicResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the endpoint attributes for a device on one of the supported push * notification services, such as GCM (Firebase Cloud Messaging) and APNS. For more * information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

*/ virtual Model::GetEndpointAttributesOutcome GetEndpointAttributes(const Model::GetEndpointAttributesRequest& request) const; /** *

Retrieves the endpoint attributes for a device on one of the supported push * notification services, such as GCM (Firebase Cloud Messaging) and APNS. For more * information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetEndpointAttributesOutcomeCallable GetEndpointAttributesCallable(const Model::GetEndpointAttributesRequest& request) const; /** *

Retrieves the endpoint attributes for a device on one of the supported push * notification services, such as GCM (Firebase Cloud Messaging) and APNS. For more * information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetEndpointAttributesAsync(const Model::GetEndpointAttributesRequest& request, const GetEndpointAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the attributes of the platform application object for the supported * push notification services, such as APNS and GCM (Firebase Cloud Messaging). For * more information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

*/ virtual Model::GetPlatformApplicationAttributesOutcome GetPlatformApplicationAttributes(const Model::GetPlatformApplicationAttributesRequest& request) const; /** *

Retrieves the attributes of the platform application object for the supported * push notification services, such as APNS and GCM (Firebase Cloud Messaging). For * more information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetPlatformApplicationAttributesOutcomeCallable GetPlatformApplicationAttributesCallable(const Model::GetPlatformApplicationAttributesRequest& request) const; /** *

Retrieves the attributes of the platform application object for the supported * push notification services, such as APNS and GCM (Firebase Cloud Messaging). For * more information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetPlatformApplicationAttributesAsync(const Model::GetPlatformApplicationAttributesRequest& request, const GetPlatformApplicationAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns the settings for sending SMS messages from your account.

These * settings are set with the SetSMSAttributes action.

See * Also:

AWS * API Reference

*/ virtual Model::GetSMSAttributesOutcome GetSMSAttributes(const Model::GetSMSAttributesRequest& request) const; /** *

Returns the settings for sending SMS messages from your account.

These * settings are set with the SetSMSAttributes action.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetSMSAttributesOutcomeCallable GetSMSAttributesCallable(const Model::GetSMSAttributesRequest& request) const; /** *

Returns the settings for sending SMS messages from your account.

These * settings are set with the SetSMSAttributes action.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetSMSAttributesAsync(const Model::GetSMSAttributesRequest& request, const GetSMSAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns all of the properties of a subscription.

See Also:

* AWS * API Reference

*/ virtual Model::GetSubscriptionAttributesOutcome GetSubscriptionAttributes(const Model::GetSubscriptionAttributesRequest& request) const; /** *

Returns all of the properties of a subscription.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetSubscriptionAttributesOutcomeCallable GetSubscriptionAttributesCallable(const Model::GetSubscriptionAttributesRequest& request) const; /** *

Returns all of the properties of a subscription.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetSubscriptionAttributesAsync(const Model::GetSubscriptionAttributesRequest& request, const GetSubscriptionAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

See Also:

AWS * API Reference

*/ virtual Model::GetTopicAttributesOutcome GetTopicAttributes(const Model::GetTopicAttributesRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetTopicAttributesOutcomeCallable GetTopicAttributesCallable(const Model::GetTopicAttributesRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetTopicAttributesAsync(const Model::GetTopicAttributesRequest& request, const GetTopicAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the endpoints and endpoint attributes for devices in a supported push * notification service, such as GCM (Firebase Cloud Messaging) 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.

This action is throttled at 30 * transactions per second (TPS).

See Also:

AWS * API Reference

*/ virtual Model::ListEndpointsByPlatformApplicationOutcome ListEndpointsByPlatformApplication(const Model::ListEndpointsByPlatformApplicationRequest& request) const; /** *

Lists the endpoints and endpoint attributes for devices in a supported push * notification service, such as GCM (Firebase Cloud Messaging) 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.

This action is throttled at 30 * transactions per second (TPS).

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListEndpointsByPlatformApplicationOutcomeCallable ListEndpointsByPlatformApplicationCallable(const Model::ListEndpointsByPlatformApplicationRequest& request) const; /** *

Lists the endpoints and endpoint attributes for devices in a supported push * notification service, such as GCM (Firebase Cloud Messaging) 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.

This action is throttled at 30 * transactions per second (TPS).

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListEndpointsByPlatformApplicationAsync(const Model::ListEndpointsByPlatformApplicationRequest& request, const ListEndpointsByPlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns a list of phone numbers that are opted out, meaning you cannot send * SMS messages to them.

The results for * ListPhoneNumbersOptedOut are paginated, and each page returns up to * 100 phone numbers. If additional phone numbers are available after the first * page of results, then a NextToken string will be returned. To * receive the next page, you call ListPhoneNumbersOptedOut again * using the NextToken string received from the previous call. When * there are no more records to return, NextToken will be * null.

See Also:

AWS * API Reference

*/ virtual Model::ListPhoneNumbersOptedOutOutcome ListPhoneNumbersOptedOut(const Model::ListPhoneNumbersOptedOutRequest& request) const; /** *

Returns a list of phone numbers that are opted out, meaning you cannot send * SMS messages to them.

The results for * ListPhoneNumbersOptedOut are paginated, and each page returns up to * 100 phone numbers. If additional phone numbers are available after the first * page of results, then a NextToken string will be returned. To * receive the next page, you call ListPhoneNumbersOptedOut again * using the NextToken string received from the previous call. When * there are no more records to return, NextToken will be * null.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListPhoneNumbersOptedOutOutcomeCallable ListPhoneNumbersOptedOutCallable(const Model::ListPhoneNumbersOptedOutRequest& request) const; /** *

Returns a list of phone numbers that are opted out, meaning you cannot send * SMS messages to them.

The results for * ListPhoneNumbersOptedOut are paginated, and each page returns up to * 100 phone numbers. If additional phone numbers are available after the first * page of results, then a NextToken string will be returned. To * receive the next page, you call ListPhoneNumbersOptedOut again * using the NextToken string received from the previous call. When * there are no more records to return, NextToken will be * null.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListPhoneNumbersOptedOutAsync(const Model::ListPhoneNumbersOptedOutRequest& request, const ListPhoneNumbersOptedOutResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the platform application objects for the supported push notification * services, such as APNS and GCM (Firebase Cloud Messaging). 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.

This action is throttled at 15 * transactions per second (TPS).

See Also:

AWS * API Reference

*/ virtual Model::ListPlatformApplicationsOutcome ListPlatformApplications(const Model::ListPlatformApplicationsRequest& request) const; /** *

Lists the platform application objects for the supported push notification * services, such as APNS and GCM (Firebase Cloud Messaging). 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.

This action is throttled at 15 * transactions per second (TPS).

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListPlatformApplicationsOutcomeCallable ListPlatformApplicationsCallable(const Model::ListPlatformApplicationsRequest& request) const; /** *

Lists the platform application objects for the supported push notification * services, such as APNS and GCM (Firebase Cloud Messaging). 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.

This action is throttled at 15 * transactions per second (TPS).

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListPlatformApplicationsAsync(const Model::ListPlatformApplicationsRequest& request, const ListPlatformApplicationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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.

This action is throttled at 30 transactions per second * (TPS).

See Also:

AWS * API Reference

*/ virtual Model::ListSubscriptionsOutcome ListSubscriptions(const Model::ListSubscriptionsRequest& request) const; /** *

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.

This action is throttled at 30 transactions per second * (TPS).

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListSubscriptionsOutcomeCallable ListSubscriptionsCallable(const Model::ListSubscriptionsRequest& request) const; /** *

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.

This action is throttled at 30 transactions per second * (TPS).

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListSubscriptionsAsync(const Model::ListSubscriptionsRequest& request, const ListSubscriptionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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.

This action is throttled at 30 transactions per second * (TPS).

See Also:

AWS * API Reference

*/ virtual Model::ListSubscriptionsByTopicOutcome ListSubscriptionsByTopic(const Model::ListSubscriptionsByTopicRequest& request) const; /** *

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.

This action is throttled at 30 transactions per second * (TPS).

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListSubscriptionsByTopicOutcomeCallable ListSubscriptionsByTopicCallable(const Model::ListSubscriptionsByTopicRequest& request) const; /** *

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.

This action is throttled at 30 transactions per second * (TPS).

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListSubscriptionsByTopicAsync(const Model::ListSubscriptionsByTopicRequest& request, const ListSubscriptionsByTopicResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

List all tags added to the specified Amazon SNS topic. For an overview, see * Amazon SNS * Tags in the Amazon Simple Notification Service Developer * Guide.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** *

List all tags added to the specified Amazon SNS topic. For an overview, see * Amazon SNS * Tags in the Amazon Simple Notification Service Developer * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; /** *

List all tags added to the specified Amazon SNS topic. For an overview, see * Amazon SNS * Tags in the Amazon Simple Notification Service Developer * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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.

This action is * throttled at 30 transactions per second (TPS).

See Also:

AWS API * Reference

*/ virtual Model::ListTopicsOutcome ListTopics(const Model::ListTopicsRequest& request) const; /** *

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.

This action is * throttled at 30 transactions per second (TPS).

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTopicsOutcomeCallable ListTopicsCallable(const Model::ListTopicsRequest& request) const; /** *

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.

This action is * throttled at 30 transactions per second (TPS).

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTopicsAsync(const Model::ListTopicsRequest& request, const ListTopicsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Use this request to opt in a phone number that is opted out, which enables * you to resume sending SMS messages to the number.

You can opt in a phone * number only once every 30 days.

See Also:

AWS * API Reference

*/ virtual Model::OptInPhoneNumberOutcome OptInPhoneNumber(const Model::OptInPhoneNumberRequest& request) const; /** *

Use this request to opt in a phone number that is opted out, which enables * you to resume sending SMS messages to the number.

You can opt in a phone * number only once every 30 days.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::OptInPhoneNumberOutcomeCallable OptInPhoneNumberCallable(const Model::OptInPhoneNumberRequest& request) const; /** *

Use this request to opt in a phone number that is opted out, which enables * you to resume sending SMS messages to the number.

You can opt in a phone * number only once every 30 days.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void OptInPhoneNumberAsync(const Model::OptInPhoneNumberRequest& request, const OptInPhoneNumberResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sends a message to an Amazon SNS topic, a text message (SMS message) directly * to a phone number, or a message to a mobile platform endpoint (when you specify * the TargetArn).

If you send a message to a topic, Amazon SNS * delivers the message to each endpoint that is subscribed to the topic. The * format of the message depends on the notification protocol for each subscribed * endpoint.

When a messageId is returned, the message has been * saved and Amazon SNS will attempt to deliver it shortly.

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 for * the TargetArn parameter. The EndpointArn is returned when making a call with the * CreatePlatformEndpoint action.

For more information about * formatting messages, see Send * Custom Platform-Specific Payloads in Messages to Mobile Devices.

*

You can publish messages only to topics and endpoints in the same * AWS Region.

See Also:

AWS API * Reference

*/ virtual Model::PublishOutcome Publish(const Model::PublishRequest& request) const; /** *

Sends a message to an Amazon SNS topic, a text message (SMS message) directly * to a phone number, or a message to a mobile platform endpoint (when you specify * the TargetArn).

If you send a message to a topic, Amazon SNS * delivers the message to each endpoint that is subscribed to the topic. The * format of the message depends on the notification protocol for each subscribed * endpoint.

When a messageId is returned, the message has been * saved and Amazon SNS will attempt to deliver it shortly.

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 for * the TargetArn parameter. The EndpointArn is returned when making a call with the * CreatePlatformEndpoint action.

For more information about * formatting messages, see Send * Custom Platform-Specific Payloads in Messages to Mobile Devices.

*

You can publish messages only to topics and endpoints in the same * AWS Region.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PublishOutcomeCallable PublishCallable(const Model::PublishRequest& request) const; /** *

Sends a message to an Amazon SNS topic, a text message (SMS message) directly * to a phone number, or a message to a mobile platform endpoint (when you specify * the TargetArn).

If you send a message to a topic, Amazon SNS * delivers the message to each endpoint that is subscribed to the topic. The * format of the message depends on the notification protocol for each subscribed * endpoint.

When a messageId is returned, the message has been * saved and Amazon SNS will attempt to deliver it shortly.

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 for * the TargetArn parameter. The EndpointArn is returned when making a call with the * CreatePlatformEndpoint action.

For more information about * formatting messages, see Send * Custom Platform-Specific Payloads in Messages to Mobile Devices.

*

You can publish messages only to topics and endpoints in the same * AWS Region.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PublishAsync(const Model::PublishRequest& request, const PublishResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

See * Also:

AWS * API Reference

*/ virtual Model::RemovePermissionOutcome RemovePermission(const Model::RemovePermissionRequest& request) const; /** *

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

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RemovePermissionOutcomeCallable RemovePermissionCallable(const Model::RemovePermissionRequest& request) const; /** *

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

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RemovePermissionAsync(const Model::RemovePermissionRequest& request, const RemovePermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sets the attributes for an endpoint for a device on one of the supported push * notification services, such as GCM (Firebase Cloud Messaging) and APNS. For more * information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

*/ virtual Model::SetEndpointAttributesOutcome SetEndpointAttributes(const Model::SetEndpointAttributesRequest& request) const; /** *

Sets the attributes for an endpoint for a device on one of the supported push * notification services, such as GCM (Firebase Cloud Messaging) and APNS. For more * information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetEndpointAttributesOutcomeCallable SetEndpointAttributesCallable(const Model::SetEndpointAttributesRequest& request) const; /** *

Sets the attributes for an endpoint for a device on one of the supported push * notification services, such as GCM (Firebase Cloud Messaging) and APNS. For more * information, see Using Amazon * SNS Mobile Push Notifications.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetEndpointAttributesAsync(const Model::SetEndpointAttributesRequest& request, const SetEndpointAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sets the attributes of the platform application object for the supported push * notification services, such as APNS and GCM (Firebase Cloud Messaging). For more * information, see Using Amazon * SNS Mobile Push Notifications. For information on configuring attributes for * message delivery status, see Using * Amazon SNS Application Attributes for Message Delivery Status. *

See Also:

AWS * API Reference

*/ virtual Model::SetPlatformApplicationAttributesOutcome SetPlatformApplicationAttributes(const Model::SetPlatformApplicationAttributesRequest& request) const; /** *

Sets the attributes of the platform application object for the supported push * notification services, such as APNS and GCM (Firebase Cloud Messaging). For more * information, see Using Amazon * SNS Mobile Push Notifications. For information on configuring attributes for * message delivery status, see Using * Amazon SNS Application Attributes for Message Delivery Status. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetPlatformApplicationAttributesOutcomeCallable SetPlatformApplicationAttributesCallable(const Model::SetPlatformApplicationAttributesRequest& request) const; /** *

Sets the attributes of the platform application object for the supported push * notification services, such as APNS and GCM (Firebase Cloud Messaging). For more * information, see Using Amazon * SNS Mobile Push Notifications. For information on configuring attributes for * message delivery status, see Using * Amazon SNS Application Attributes for Message Delivery Status. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetPlatformApplicationAttributesAsync(const Model::SetPlatformApplicationAttributesRequest& request, const SetPlatformApplicationAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Use this request to set the default settings for sending SMS messages and * receiving daily SMS usage reports.

You can override some of these * settings for a single message when you use the Publish action with * the MessageAttributes.entry.N parameter. For more information, see * Sending * an SMS Message in the Amazon SNS Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::SetSMSAttributesOutcome SetSMSAttributes(const Model::SetSMSAttributesRequest& request) const; /** *

Use this request to set the default settings for sending SMS messages and * receiving daily SMS usage reports.

You can override some of these * settings for a single message when you use the Publish action with * the MessageAttributes.entry.N parameter. For more information, see * Sending * an SMS Message in the Amazon SNS Developer Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetSMSAttributesOutcomeCallable SetSMSAttributesCallable(const Model::SetSMSAttributesRequest& request) const; /** *

Use this request to set the default settings for sending SMS messages and * receiving daily SMS usage reports.

You can override some of these * settings for a single message when you use the Publish action with * the MessageAttributes.entry.N parameter. For more information, see * Sending * an SMS Message in the Amazon SNS Developer Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetSMSAttributesAsync(const Model::SetSMSAttributesRequest& request, const SetSMSAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

See Also:

AWS * API Reference

*/ virtual Model::SetSubscriptionAttributesOutcome SetSubscriptionAttributes(const Model::SetSubscriptionAttributesRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetSubscriptionAttributesOutcomeCallable SetSubscriptionAttributesCallable(const Model::SetSubscriptionAttributesRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetSubscriptionAttributesAsync(const Model::SetSubscriptionAttributesRequest& request, const SetSubscriptionAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

See Also:

AWS * API Reference

*/ virtual Model::SetTopicAttributesOutcome SetTopicAttributes(const Model::SetTopicAttributesRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetTopicAttributesOutcomeCallable SetTopicAttributesCallable(const Model::SetTopicAttributesRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetTopicAttributesAsync(const Model::SetTopicAttributesRequest& request, const SetTopicAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Subscribes an endpoint to an Amazon SNS topic. If the endpoint type is HTTP/S * or email, or if the endpoint and the topic are not in the same AWS account, the * endpoint owner must the ConfirmSubscription action to confirm the * subscription.

You call the ConfirmSubscription action with * the token from the subscription response. Confirmation tokens are valid for * three days.

This action is throttled at 100 transactions per second * (TPS).

See Also:

AWS API * Reference

*/ virtual Model::SubscribeOutcome Subscribe(const Model::SubscribeRequest& request) const; /** *

Subscribes an endpoint to an Amazon SNS topic. If the endpoint type is HTTP/S * or email, or if the endpoint and the topic are not in the same AWS account, the * endpoint owner must the ConfirmSubscription action to confirm the * subscription.

You call the ConfirmSubscription action with * the token from the subscription response. Confirmation tokens are valid for * three days.

This action is throttled at 100 transactions per second * (TPS).

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SubscribeOutcomeCallable SubscribeCallable(const Model::SubscribeRequest& request) const; /** *

Subscribes an endpoint to an Amazon SNS topic. If the endpoint type is HTTP/S * or email, or if the endpoint and the topic are not in the same AWS account, the * endpoint owner must the ConfirmSubscription action to confirm the * subscription.

You call the ConfirmSubscription action with * the token from the subscription response. Confirmation tokens are valid for * three days.

This action is throttled at 100 transactions per second * (TPS).

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SubscribeAsync(const Model::SubscribeRequest& request, const SubscribeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Add tags to the specified Amazon SNS topic. For an overview, see Amazon SNS * Tags in the Amazon SNS Developer Guide.

When you use topic * tags, keep the following guidelines in mind:

  • Adding more than * 50 tags to a topic isn't recommended.

  • Tags don't have any * semantic meaning. Amazon SNS interprets tags as character strings.

  • *
  • Tags are case-sensitive.

  • A new tag with a key * identical to that of an existing tag overwrites the existing tag.

  • *

    Tagging actions are limited to 10 TPS per AWS account, per AWS region. If * your application requires a higher throughput, file a technical * support request.

See Also:

AWS API * Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** *

Add tags to the specified Amazon SNS topic. For an overview, see Amazon SNS * Tags in the Amazon SNS Developer Guide.

When you use topic * tags, keep the following guidelines in mind:

  • Adding more than * 50 tags to a topic isn't recommended.

  • Tags don't have any * semantic meaning. Amazon SNS interprets tags as character strings.

  • *
  • Tags are case-sensitive.

  • A new tag with a key * identical to that of an existing tag overwrites the existing tag.

  • *

    Tagging actions are limited to 10 TPS per AWS account, per AWS region. If * your application requires a higher throughput, file a technical * support request.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; /** *

Add tags to the specified Amazon SNS topic. For an overview, see Amazon SNS * Tags in the Amazon SNS Developer Guide.

When you use topic * tags, keep the following guidelines in mind:

  • Adding more than * 50 tags to a topic isn't recommended.

  • Tags don't have any * semantic meaning. Amazon SNS interprets tags as character strings.

  • *
  • Tags are case-sensitive.

  • A new tag with a key * identical to that of an existing tag overwrites the existing tag.

  • *

    Tagging actions are limited to 10 TPS per AWS account, per AWS region. If * your application requires a higher throughput, file a technical * support request.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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.

This action is throttled * at 100 transactions per second (TPS).

See Also:

AWS API * Reference

*/ virtual Model::UnsubscribeOutcome Unsubscribe(const Model::UnsubscribeRequest& request) const; /** *

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.

This action is throttled * at 100 transactions per second (TPS).

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UnsubscribeOutcomeCallable UnsubscribeCallable(const Model::UnsubscribeRequest& request) const; /** *

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.

This action is throttled * at 100 transactions per second (TPS).

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UnsubscribeAsync(const Model::UnsubscribeRequest& request, const UnsubscribeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Remove tags from the specified Amazon SNS topic. For an overview, see Amazon SNS * Tags in the Amazon SNS Developer Guide.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** *

Remove tags from the specified Amazon SNS topic. For an overview, see Amazon SNS * Tags in the Amazon SNS Developer Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; /** *

Remove tags from the specified Amazon SNS topic. For an overview, see Amazon SNS * Tags in the Amazon SNS Developer Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AddPermissionAsyncHelper(const Model::AddPermissionRequest& request, const AddPermissionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CheckIfPhoneNumberIsOptedOutAsyncHelper(const Model::CheckIfPhoneNumberIsOptedOutRequest& request, const CheckIfPhoneNumberIsOptedOutResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ConfirmSubscriptionAsyncHelper(const Model::ConfirmSubscriptionRequest& request, const ConfirmSubscriptionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreatePlatformApplicationAsyncHelper(const Model::CreatePlatformApplicationRequest& request, const CreatePlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreatePlatformEndpointAsyncHelper(const Model::CreatePlatformEndpointRequest& request, const CreatePlatformEndpointResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateTopicAsyncHelper(const Model::CreateTopicRequest& request, const CreateTopicResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteEndpointAsyncHelper(const Model::DeleteEndpointRequest& request, const DeleteEndpointResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeletePlatformApplicationAsyncHelper(const Model::DeletePlatformApplicationRequest& request, const DeletePlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteTopicAsyncHelper(const Model::DeleteTopicRequest& request, const DeleteTopicResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetEndpointAttributesAsyncHelper(const Model::GetEndpointAttributesRequest& request, const GetEndpointAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetPlatformApplicationAttributesAsyncHelper(const Model::GetPlatformApplicationAttributesRequest& request, const GetPlatformApplicationAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSMSAttributesAsyncHelper(const Model::GetSMSAttributesRequest& request, const GetSMSAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSubscriptionAttributesAsyncHelper(const Model::GetSubscriptionAttributesRequest& request, const GetSubscriptionAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetTopicAttributesAsyncHelper(const Model::GetTopicAttributesRequest& request, const GetTopicAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListEndpointsByPlatformApplicationAsyncHelper(const Model::ListEndpointsByPlatformApplicationRequest& request, const ListEndpointsByPlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListPhoneNumbersOptedOutAsyncHelper(const Model::ListPhoneNumbersOptedOutRequest& request, const ListPhoneNumbersOptedOutResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListPlatformApplicationsAsyncHelper(const Model::ListPlatformApplicationsRequest& request, const ListPlatformApplicationsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListSubscriptionsAsyncHelper(const Model::ListSubscriptionsRequest& request, const ListSubscriptionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListSubscriptionsByTopicAsyncHelper(const Model::ListSubscriptionsByTopicRequest& request, const ListSubscriptionsByTopicResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTopicsAsyncHelper(const Model::ListTopicsRequest& request, const ListTopicsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void OptInPhoneNumberAsyncHelper(const Model::OptInPhoneNumberRequest& request, const OptInPhoneNumberResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PublishAsyncHelper(const Model::PublishRequest& request, const PublishResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RemovePermissionAsyncHelper(const Model::RemovePermissionRequest& request, const RemovePermissionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetEndpointAttributesAsyncHelper(const Model::SetEndpointAttributesRequest& request, const SetEndpointAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetPlatformApplicationAttributesAsyncHelper(const Model::SetPlatformApplicationAttributesRequest& request, const SetPlatformApplicationAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetSMSAttributesAsyncHelper(const Model::SetSMSAttributesRequest& request, const SetSMSAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetSubscriptionAttributesAsyncHelper(const Model::SetSubscriptionAttributesRequest& request, const SetSubscriptionAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetTopicAttributesAsyncHelper(const Model::SetTopicAttributesRequest& request, const SetTopicAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SubscribeAsyncHelper(const Model::SubscribeRequest& request, const SubscribeResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UnsubscribeAsyncHelper(const Model::UnsubscribeRequest& request, const UnsubscribeResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace SNS } // namespace Aws