/** * 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 namespace Aws { namespace SNS { /** * 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 the Amazon SNS product page. For detailed * information about Amazon SNS features and their associated API calls, see the Amazon SNS Developer * Guide.

For information on the permissions you need to use this API, * see Identity * and access management in Amazon SNS in 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 Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSXMLClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef SNSClientConfiguration ClientConfigurationType; typedef SNSEndpointProvider EndpointProviderType; /** * 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::SNS::SNSClientConfiguration& clientConfiguration = Aws::SNS::SNSClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * 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, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SNS::SNSClientConfiguration& clientConfiguration = Aws::SNS::SNSClientConfiguration()); /** * 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, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SNS::SNSClientConfiguration& clientConfiguration = Aws::SNS::SNSClientConfiguration()); /* Legacy constructors due deprecation */ /** * 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); /** * 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); /** * 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); /* End of legacy constructors due deprecation */ 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 Amazon Web Services accounts to the specified actions.

*

To remove the ability to change topic permissions, you must deny permissions * to the AddPermission, RemovePermission, and * SetTopicAttributes actions in your IAM policy.

*

See Also:

AWS * API Reference

*/ virtual Model::AddPermissionOutcome AddPermission(const Model::AddPermissionRequest& request) const; /** * A Callable wrapper for AddPermission that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AddPermissionOutcomeCallable AddPermissionCallable(const AddPermissionRequestT& request) const { return SubmitCallable(&SNSClient::AddPermission, request); } /** * An Async wrapper for AddPermission that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AddPermissionAsync(const AddPermissionRequestT& request, const AddPermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::AddPermission, request, handler, context); } /** *

Accepts a phone number and indicates whether the phone holder has opted out * of receiving SMS messages from your Amazon Web Services 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; /** * A Callable wrapper for CheckIfPhoneNumberIsOptedOut that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CheckIfPhoneNumberIsOptedOutOutcomeCallable CheckIfPhoneNumberIsOptedOutCallable(const CheckIfPhoneNumberIsOptedOutRequestT& request) const { return SubmitCallable(&SNSClient::CheckIfPhoneNumberIsOptedOut, request); } /** * An Async wrapper for CheckIfPhoneNumberIsOptedOut that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CheckIfPhoneNumberIsOptedOutAsync(const CheckIfPhoneNumberIsOptedOutRequestT& request, const CheckIfPhoneNumberIsOptedOutResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::CheckIfPhoneNumberIsOptedOut, request, handler, context); } /** *

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; /** * A Callable wrapper for ConfirmSubscription that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ConfirmSubscriptionOutcomeCallable ConfirmSubscriptionCallable(const ConfirmSubscriptionRequestT& request) const { return SubmitCallable(&SNSClient::ConfirmSubscription, request); } /** * An Async wrapper for ConfirmSubscription that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ConfirmSubscriptionAsync(const ConfirmSubscriptionRequestT& request, const ConfirmSubscriptionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::ConfirmSubscription, request, handler, context); } /** *

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 using * certificate credentials, PlatformPrincipal is SSL * certificate and PlatformCredential is private * key.

  • For APNS and * APNS_SANDBOX using token credentials, * PlatformPrincipal is signing key ID and * PlatformCredential is signing 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; /** * A Callable wrapper for CreatePlatformApplication that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreatePlatformApplicationOutcomeCallable CreatePlatformApplicationCallable(const CreatePlatformApplicationRequestT& request) const { return SubmitCallable(&SNSClient::CreatePlatformApplication, request); } /** * An Async wrapper for CreatePlatformApplication that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreatePlatformApplicationAsync(const CreatePlatformApplicationRequestT& request, const CreatePlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::CreatePlatformApplication, request, handler, context); } /** *

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; /** * A Callable wrapper for CreatePlatformEndpoint that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreatePlatformEndpointOutcomeCallable CreatePlatformEndpointCallable(const CreatePlatformEndpointRequestT& request) const { return SubmitCallable(&SNSClient::CreatePlatformEndpoint, request); } /** * An Async wrapper for CreatePlatformEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreatePlatformEndpointAsync(const CreatePlatformEndpointRequestT& request, const CreatePlatformEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::CreatePlatformEndpoint, request, handler, context); } /** *

Adds a destination phone number to an Amazon Web Services account in the SMS * sandbox and sends a one-time password (OTP) to that phone number.

When * you start using Amazon SNS to send SMS messages, your Amazon Web Services * account is in the SMS sandbox. The SMS sandbox provides a safe * environment for you to try Amazon SNS features without risking your reputation * as an SMS sender. While your Amazon Web Services account is in the SMS sandbox, * you can use all of the features of Amazon SNS. However, you can send SMS * messages only to verified destination phone numbers. For more information, * including how to move out of the sandbox to send messages without restrictions, * see SMS * sandbox in the Amazon SNS Developer Guide.

See Also:

* AWS * API Reference

*/ virtual Model::CreateSMSSandboxPhoneNumberOutcome CreateSMSSandboxPhoneNumber(const Model::CreateSMSSandboxPhoneNumberRequest& request) const; /** * A Callable wrapper for CreateSMSSandboxPhoneNumber that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateSMSSandboxPhoneNumberOutcomeCallable CreateSMSSandboxPhoneNumberCallable(const CreateSMSSandboxPhoneNumberRequestT& request) const { return SubmitCallable(&SNSClient::CreateSMSSandboxPhoneNumber, request); } /** * An Async wrapper for CreateSMSSandboxPhoneNumber that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateSMSSandboxPhoneNumberAsync(const CreateSMSSandboxPhoneNumberRequestT& request, const CreateSMSSandboxPhoneNumberResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::CreateSMSSandboxPhoneNumber, request, handler, context); } /** *

Creates a topic to which notifications can be published. Users can create at * most 100,000 standard topics (at most 1,000 FIFO topics). For more information, * see Creating * an Amazon SNS topic in the Amazon SNS Developer Guide. 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; /** * A Callable wrapper for CreateTopic that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateTopicOutcomeCallable CreateTopicCallable(const CreateTopicRequestT& request) const { return SubmitCallable(&SNSClient::CreateTopic, request); } /** * An Async wrapper for CreateTopic that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateTopicAsync(const CreateTopicRequestT& request, const CreateTopicResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::CreateTopic, request, handler, context); } /** *

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; /** * A Callable wrapper for DeleteEndpoint that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteEndpointOutcomeCallable DeleteEndpointCallable(const DeleteEndpointRequestT& request) const { return SubmitCallable(&SNSClient::DeleteEndpoint, request); } /** * An Async wrapper for DeleteEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteEndpointAsync(const DeleteEndpointRequestT& request, const DeleteEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::DeleteEndpoint, request, handler, context); } /** *

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; /** * A Callable wrapper for DeletePlatformApplication that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeletePlatformApplicationOutcomeCallable DeletePlatformApplicationCallable(const DeletePlatformApplicationRequestT& request) const { return SubmitCallable(&SNSClient::DeletePlatformApplication, request); } /** * An Async wrapper for DeletePlatformApplication that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeletePlatformApplicationAsync(const DeletePlatformApplicationRequestT& request, const DeletePlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::DeletePlatformApplication, request, handler, context); } /** *

Deletes an Amazon Web Services account's verified or pending phone number * from the SMS sandbox.

When you start using Amazon SNS to send SMS * messages, your Amazon Web Services account is in the SMS sandbox. The SMS * sandbox provides a safe environment for you to try Amazon SNS features without * risking your reputation as an SMS sender. While your Amazon Web Services account * is in the SMS sandbox, you can use all of the features of Amazon SNS. However, * you can send SMS messages only to verified destination phone numbers. For more * information, including how to move out of the sandbox to send messages without * restrictions, see SMS * sandbox in the Amazon SNS Developer Guide.

See Also:

* AWS * API Reference

*/ virtual Model::DeleteSMSSandboxPhoneNumberOutcome DeleteSMSSandboxPhoneNumber(const Model::DeleteSMSSandboxPhoneNumberRequest& request) const; /** * A Callable wrapper for DeleteSMSSandboxPhoneNumber that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteSMSSandboxPhoneNumberOutcomeCallable DeleteSMSSandboxPhoneNumberCallable(const DeleteSMSSandboxPhoneNumberRequestT& request) const { return SubmitCallable(&SNSClient::DeleteSMSSandboxPhoneNumber, request); } /** * An Async wrapper for DeleteSMSSandboxPhoneNumber that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteSMSSandboxPhoneNumberAsync(const DeleteSMSSandboxPhoneNumberRequestT& request, const DeleteSMSSandboxPhoneNumberResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::DeleteSMSSandboxPhoneNumber, request, handler, context); } /** *

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; /** * A Callable wrapper for DeleteTopic that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteTopicOutcomeCallable DeleteTopicCallable(const DeleteTopicRequestT& request) const { return SubmitCallable(&SNSClient::DeleteTopic, request); } /** * An Async wrapper for DeleteTopic that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteTopicAsync(const DeleteTopicRequestT& request, const DeleteTopicResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::DeleteTopic, request, handler, context); } /** *

Retrieves the specified inline DataProtectionPolicy document * that is stored in the specified Amazon SNS topic.

See Also:

AWS * API Reference

*/ virtual Model::GetDataProtectionPolicyOutcome GetDataProtectionPolicy(const Model::GetDataProtectionPolicyRequest& request) const; /** * A Callable wrapper for GetDataProtectionPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetDataProtectionPolicyOutcomeCallable GetDataProtectionPolicyCallable(const GetDataProtectionPolicyRequestT& request) const { return SubmitCallable(&SNSClient::GetDataProtectionPolicy, request); } /** * An Async wrapper for GetDataProtectionPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetDataProtectionPolicyAsync(const GetDataProtectionPolicyRequestT& request, const GetDataProtectionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::GetDataProtectionPolicy, request, handler, context); } /** *

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; /** * A Callable wrapper for GetEndpointAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetEndpointAttributesOutcomeCallable GetEndpointAttributesCallable(const GetEndpointAttributesRequestT& request) const { return SubmitCallable(&SNSClient::GetEndpointAttributes, request); } /** * An Async wrapper for GetEndpointAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetEndpointAttributesAsync(const GetEndpointAttributesRequestT& request, const GetEndpointAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::GetEndpointAttributes, request, handler, context); } /** *

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; /** * A Callable wrapper for GetPlatformApplicationAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetPlatformApplicationAttributesOutcomeCallable GetPlatformApplicationAttributesCallable(const GetPlatformApplicationAttributesRequestT& request) const { return SubmitCallable(&SNSClient::GetPlatformApplicationAttributes, request); } /** * An Async wrapper for GetPlatformApplicationAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetPlatformApplicationAttributesAsync(const GetPlatformApplicationAttributesRequestT& request, const GetPlatformApplicationAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::GetPlatformApplicationAttributes, request, handler, context); } /** *

Returns the settings for sending SMS messages from your Amazon Web Services * account.

These settings are set with the SetSMSAttributes * action.

See Also:

AWS * API Reference

*/ virtual Model::GetSMSAttributesOutcome GetSMSAttributes(const Model::GetSMSAttributesRequest& request) const; /** * A Callable wrapper for GetSMSAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetSMSAttributesOutcomeCallable GetSMSAttributesCallable(const GetSMSAttributesRequestT& request) const { return SubmitCallable(&SNSClient::GetSMSAttributes, request); } /** * An Async wrapper for GetSMSAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetSMSAttributesAsync(const GetSMSAttributesRequestT& request, const GetSMSAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::GetSMSAttributes, request, handler, context); } /** *

Retrieves the SMS sandbox status for the calling Amazon Web Services account * in the target Amazon Web Services Region.

When you start using Amazon SNS * to send SMS messages, your Amazon Web Services account is in the SMS * sandbox. The SMS sandbox provides a safe environment for you to try Amazon * SNS features without risking your reputation as an SMS sender. While your Amazon * Web Services account is in the SMS sandbox, you can use all of the features of * Amazon SNS. However, you can send SMS messages only to verified destination * phone numbers. For more information, including how to move out of the sandbox to * send messages without restrictions, see SMS * sandbox in the Amazon SNS Developer Guide.

See Also:

* AWS * API Reference

*/ virtual Model::GetSMSSandboxAccountStatusOutcome GetSMSSandboxAccountStatus(const Model::GetSMSSandboxAccountStatusRequest& request) const; /** * A Callable wrapper for GetSMSSandboxAccountStatus that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetSMSSandboxAccountStatusOutcomeCallable GetSMSSandboxAccountStatusCallable(const GetSMSSandboxAccountStatusRequestT& request) const { return SubmitCallable(&SNSClient::GetSMSSandboxAccountStatus, request); } /** * An Async wrapper for GetSMSSandboxAccountStatus that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetSMSSandboxAccountStatusAsync(const GetSMSSandboxAccountStatusRequestT& request, const GetSMSSandboxAccountStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::GetSMSSandboxAccountStatus, request, handler, context); } /** *

Returns all of the properties of a subscription.

See Also:

* AWS * API Reference

*/ virtual Model::GetSubscriptionAttributesOutcome GetSubscriptionAttributes(const Model::GetSubscriptionAttributesRequest& request) const; /** * A Callable wrapper for GetSubscriptionAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetSubscriptionAttributesOutcomeCallable GetSubscriptionAttributesCallable(const GetSubscriptionAttributesRequestT& request) const { return SubmitCallable(&SNSClient::GetSubscriptionAttributes, request); } /** * An Async wrapper for GetSubscriptionAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetSubscriptionAttributesAsync(const GetSubscriptionAttributesRequestT& request, const GetSubscriptionAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::GetSubscriptionAttributes, request, handler, context); } /** *

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; /** * A Callable wrapper for GetTopicAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetTopicAttributesOutcomeCallable GetTopicAttributesCallable(const GetTopicAttributesRequestT& request) const { return SubmitCallable(&SNSClient::GetTopicAttributes, request); } /** * An Async wrapper for GetTopicAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetTopicAttributesAsync(const GetTopicAttributesRequestT& request, const GetTopicAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::GetTopicAttributes, request, handler, context); } /** *

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; /** * A Callable wrapper for ListEndpointsByPlatformApplication that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListEndpointsByPlatformApplicationOutcomeCallable ListEndpointsByPlatformApplicationCallable(const ListEndpointsByPlatformApplicationRequestT& request) const { return SubmitCallable(&SNSClient::ListEndpointsByPlatformApplication, request); } /** * An Async wrapper for ListEndpointsByPlatformApplication that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListEndpointsByPlatformApplicationAsync(const ListEndpointsByPlatformApplicationRequestT& request, const ListEndpointsByPlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::ListEndpointsByPlatformApplication, request, handler, context); } /** *

Lists the calling Amazon Web Services account's dedicated origination numbers * and their metadata. For more information about origination numbers, see Origination * numbers in the Amazon SNS Developer Guide.

See Also:

* AWS * API Reference

*/ virtual Model::ListOriginationNumbersOutcome ListOriginationNumbers(const Model::ListOriginationNumbersRequest& request) const; /** * A Callable wrapper for ListOriginationNumbers that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListOriginationNumbersOutcomeCallable ListOriginationNumbersCallable(const ListOriginationNumbersRequestT& request) const { return SubmitCallable(&SNSClient::ListOriginationNumbers, request); } /** * An Async wrapper for ListOriginationNumbers that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListOriginationNumbersAsync(const ListOriginationNumbersRequestT& request, const ListOriginationNumbersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::ListOriginationNumbers, request, handler, context); } /** *

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; /** * A Callable wrapper for ListPhoneNumbersOptedOut that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListPhoneNumbersOptedOutOutcomeCallable ListPhoneNumbersOptedOutCallable(const ListPhoneNumbersOptedOutRequestT& request) const { return SubmitCallable(&SNSClient::ListPhoneNumbersOptedOut, request); } /** * An Async wrapper for ListPhoneNumbersOptedOut that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListPhoneNumbersOptedOutAsync(const ListPhoneNumbersOptedOutRequestT& request, const ListPhoneNumbersOptedOutResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::ListPhoneNumbersOptedOut, request, handler, context); } /** *

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; /** * A Callable wrapper for ListPlatformApplications that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListPlatformApplicationsOutcomeCallable ListPlatformApplicationsCallable(const ListPlatformApplicationsRequestT& request) const { return SubmitCallable(&SNSClient::ListPlatformApplications, request); } /** * An Async wrapper for ListPlatformApplications that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListPlatformApplicationsAsync(const ListPlatformApplicationsRequestT& request, const ListPlatformApplicationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::ListPlatformApplications, request, handler, context); } /** *

Lists the calling Amazon Web Services account's current verified and pending * destination phone numbers in the SMS sandbox.

When you start using Amazon * SNS to send SMS messages, your Amazon Web Services account is in the SMS * sandbox. The SMS sandbox provides a safe environment for you to try Amazon * SNS features without risking your reputation as an SMS sender. While your Amazon * Web Services account is in the SMS sandbox, you can use all of the features of * Amazon SNS. However, you can send SMS messages only to verified destination * phone numbers. For more information, including how to move out of the sandbox to * send messages without restrictions, see SMS * sandbox in the Amazon SNS Developer Guide.

See Also:

* AWS * API Reference

*/ virtual Model::ListSMSSandboxPhoneNumbersOutcome ListSMSSandboxPhoneNumbers(const Model::ListSMSSandboxPhoneNumbersRequest& request) const; /** * A Callable wrapper for ListSMSSandboxPhoneNumbers that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListSMSSandboxPhoneNumbersOutcomeCallable ListSMSSandboxPhoneNumbersCallable(const ListSMSSandboxPhoneNumbersRequestT& request) const { return SubmitCallable(&SNSClient::ListSMSSandboxPhoneNumbers, request); } /** * An Async wrapper for ListSMSSandboxPhoneNumbers that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListSMSSandboxPhoneNumbersAsync(const ListSMSSandboxPhoneNumbersRequestT& request, const ListSMSSandboxPhoneNumbersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::ListSMSSandboxPhoneNumbers, request, handler, context); } /** *

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; /** * A Callable wrapper for ListSubscriptions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListSubscriptionsOutcomeCallable ListSubscriptionsCallable(const ListSubscriptionsRequestT& request) const { return SubmitCallable(&SNSClient::ListSubscriptions, request); } /** * An Async wrapper for ListSubscriptions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListSubscriptionsAsync(const ListSubscriptionsRequestT& request, const ListSubscriptionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::ListSubscriptions, request, handler, context); } /** *

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; /** * A Callable wrapper for ListSubscriptionsByTopic that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListSubscriptionsByTopicOutcomeCallable ListSubscriptionsByTopicCallable(const ListSubscriptionsByTopicRequestT& request) const { return SubmitCallable(&SNSClient::ListSubscriptionsByTopic, request); } /** * An Async wrapper for ListSubscriptionsByTopic that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListSubscriptionsByTopicAsync(const ListSubscriptionsByTopicRequestT& request, const ListSubscriptionsByTopicResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::ListSubscriptionsByTopic, request, handler, context); } /** *

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; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&SNSClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::ListTagsForResource, request, handler, context); } /** *

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; /** * A Callable wrapper for ListTopics that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTopicsOutcomeCallable ListTopicsCallable(const ListTopicsRequestT& request) const { return SubmitCallable(&SNSClient::ListTopics, request); } /** * An Async wrapper for ListTopics that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTopicsAsync(const ListTopicsRequestT& request, const ListTopicsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::ListTopics, request, handler, context); } /** *

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; /** * A Callable wrapper for OptInPhoneNumber that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::OptInPhoneNumberOutcomeCallable OptInPhoneNumberCallable(const OptInPhoneNumberRequestT& request) const { return SubmitCallable(&SNSClient::OptInPhoneNumber, request); } /** * An Async wrapper for OptInPhoneNumber that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void OptInPhoneNumberAsync(const OptInPhoneNumberRequestT& request, const OptInPhoneNumberResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::OptInPhoneNumber, request, handler, context); } /** *

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 is saved * and Amazon SNS immediately delivers it to subscribers.

To use the * Publish action for publishing 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 * Amazon Web Services Region.

See Also:

AWS API * Reference

*/ virtual Model::PublishOutcome Publish(const Model::PublishRequest& request) const; /** * A Callable wrapper for Publish that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PublishOutcomeCallable PublishCallable(const PublishRequestT& request) const { return SubmitCallable(&SNSClient::Publish, request); } /** * An Async wrapper for Publish that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PublishAsync(const PublishRequestT& request, const PublishResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::Publish, request, handler, context); } /** *

Publishes up to ten messages to the specified topic. This is a batch version * of Publish. For FIFO topics, multiple messages within a single * batch are published in the order they are sent, and messages are deduplicated * within the batch and across batches for 5 minutes.

The result of * publishing each message is reported individually in the response. Because the * batch request can result in a combination of successful and unsuccessful * actions, you should check for batch errors even when the call returns an HTTP * status code of 200.

The maximum allowed individual message * size and the maximum total payload size (the sum of the individual lengths of * all of the batched messages) are both 256 KB (262,144 bytes).

Some * actions take lists of parameters. These lists are specified using the * param.n notation. Values of n are integers starting * from 1. For example, a parameter list with two elements looks like this:

*

&AttributeName.1=first

&AttributeName.2=second

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

When a * messageId is returned, the batch message is saved and Amazon SNS * immediately delivers the message to subscribers.

See Also:

AWS * API Reference

*/ virtual Model::PublishBatchOutcome PublishBatch(const Model::PublishBatchRequest& request) const; /** * A Callable wrapper for PublishBatch that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PublishBatchOutcomeCallable PublishBatchCallable(const PublishBatchRequestT& request) const { return SubmitCallable(&SNSClient::PublishBatch, request); } /** * An Async wrapper for PublishBatch that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PublishBatchAsync(const PublishBatchRequestT& request, const PublishBatchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::PublishBatch, request, handler, context); } /** *

Adds or updates an inline policy document that is stored in the specified * Amazon SNS topic.

See Also:

AWS * API Reference

*/ virtual Model::PutDataProtectionPolicyOutcome PutDataProtectionPolicy(const Model::PutDataProtectionPolicyRequest& request) const; /** * A Callable wrapper for PutDataProtectionPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutDataProtectionPolicyOutcomeCallable PutDataProtectionPolicyCallable(const PutDataProtectionPolicyRequestT& request) const { return SubmitCallable(&SNSClient::PutDataProtectionPolicy, request); } /** * An Async wrapper for PutDataProtectionPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutDataProtectionPolicyAsync(const PutDataProtectionPolicyRequestT& request, const PutDataProtectionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::PutDataProtectionPolicy, request, handler, context); } /** *

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

To * remove the ability to change topic permissions, you must deny permissions to the * AddPermission, RemovePermission, and * SetTopicAttributes actions in your IAM policy.

*

See Also:

AWS * API Reference

*/ virtual Model::RemovePermissionOutcome RemovePermission(const Model::RemovePermissionRequest& request) const; /** * A Callable wrapper for RemovePermission that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RemovePermissionOutcomeCallable RemovePermissionCallable(const RemovePermissionRequestT& request) const { return SubmitCallable(&SNSClient::RemovePermission, request); } /** * An Async wrapper for RemovePermission that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RemovePermissionAsync(const RemovePermissionRequestT& request, const RemovePermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::RemovePermission, request, handler, context); } /** *

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; /** * A Callable wrapper for SetEndpointAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SetEndpointAttributesOutcomeCallable SetEndpointAttributesCallable(const SetEndpointAttributesRequestT& request) const { return SubmitCallable(&SNSClient::SetEndpointAttributes, request); } /** * An Async wrapper for SetEndpointAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SetEndpointAttributesAsync(const SetEndpointAttributesRequestT& request, const SetEndpointAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::SetEndpointAttributes, request, handler, context); } /** *

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; /** * A Callable wrapper for SetPlatformApplicationAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SetPlatformApplicationAttributesOutcomeCallable SetPlatformApplicationAttributesCallable(const SetPlatformApplicationAttributesRequestT& request) const { return SubmitCallable(&SNSClient::SetPlatformApplicationAttributes, request); } /** * An Async wrapper for SetPlatformApplicationAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SetPlatformApplicationAttributesAsync(const SetPlatformApplicationAttributesRequestT& request, const SetPlatformApplicationAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::SetPlatformApplicationAttributes, request, handler, context); } /** *

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 * Publishing * to a mobile phone in the Amazon SNS Developer Guide.

To * use this operation, you must grant the Amazon SNS service principal * (sns.amazonaws.com) permission to perform the * s3:ListBucket action.

See Also:

AWS * API Reference

*/ virtual Model::SetSMSAttributesOutcome SetSMSAttributes(const Model::SetSMSAttributesRequest& request) const; /** * A Callable wrapper for SetSMSAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SetSMSAttributesOutcomeCallable SetSMSAttributesCallable(const SetSMSAttributesRequestT& request) const { return SubmitCallable(&SNSClient::SetSMSAttributes, request); } /** * An Async wrapper for SetSMSAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SetSMSAttributesAsync(const SetSMSAttributesRequestT& request, const SetSMSAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::SetSMSAttributes, request, handler, context); } /** *

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; /** * A Callable wrapper for SetSubscriptionAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SetSubscriptionAttributesOutcomeCallable SetSubscriptionAttributesCallable(const SetSubscriptionAttributesRequestT& request) const { return SubmitCallable(&SNSClient::SetSubscriptionAttributes, request); } /** * An Async wrapper for SetSubscriptionAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SetSubscriptionAttributesAsync(const SetSubscriptionAttributesRequestT& request, const SetSubscriptionAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::SetSubscriptionAttributes, request, handler, context); } /** *

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

*

To remove the ability to change topic permissions, you must deny * permissions to the AddPermission, RemovePermission, * and SetTopicAttributes actions in your IAM policy.

*

See Also:

AWS * API Reference

*/ virtual Model::SetTopicAttributesOutcome SetTopicAttributes(const Model::SetTopicAttributesRequest& request) const; /** * A Callable wrapper for SetTopicAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SetTopicAttributesOutcomeCallable SetTopicAttributesCallable(const SetTopicAttributesRequestT& request) const { return SubmitCallable(&SNSClient::SetTopicAttributes, request); } /** * An Async wrapper for SetTopicAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SetTopicAttributesAsync(const SetTopicAttributesRequestT& request, const SetTopicAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::SetTopicAttributes, request, handler, context); } /** *

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 Amazon Web * Services account, the endpoint owner must run 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; /** * A Callable wrapper for Subscribe that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SubscribeOutcomeCallable SubscribeCallable(const SubscribeRequestT& request) const { return SubmitCallable(&SNSClient::Subscribe, request); } /** * An Async wrapper for Subscribe that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SubscribeAsync(const SubscribeRequestT& request, const SubscribeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::Subscribe, request, handler, context); } /** *

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 Amazon Web Services account, per * Amazon Web Services 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; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&SNSClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::TagResource, request, handler, context); } /** *

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 Amazon Web Services 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.

Amazon SQS queue * subscriptions require authentication for deletion. Only the owner of the * subscription, or the owner of the topic can unsubscribe using the required * Amazon Web Services signature.

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

See Also:

AWS API * Reference

*/ virtual Model::UnsubscribeOutcome Unsubscribe(const Model::UnsubscribeRequest& request) const; /** * A Callable wrapper for Unsubscribe that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UnsubscribeOutcomeCallable UnsubscribeCallable(const UnsubscribeRequestT& request) const { return SubmitCallable(&SNSClient::Unsubscribe, request); } /** * An Async wrapper for Unsubscribe that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UnsubscribeAsync(const UnsubscribeRequestT& request, const UnsubscribeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::Unsubscribe, request, handler, context); } /** *

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; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&SNSClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::UntagResource, request, handler, context); } /** *

Verifies a destination phone number with a one-time password (OTP) for the * calling Amazon Web Services account.

When you start using Amazon SNS to * send SMS messages, your Amazon Web Services account is in the SMS * sandbox. The SMS sandbox provides a safe environment for you to try Amazon * SNS features without risking your reputation as an SMS sender. While your Amazon * Web Services account is in the SMS sandbox, you can use all of the features of * Amazon SNS. However, you can send SMS messages only to verified destination * phone numbers. For more information, including how to move out of the sandbox to * send messages without restrictions, see SMS * sandbox in the Amazon SNS Developer Guide.

See Also:

* AWS * API Reference

*/ virtual Model::VerifySMSSandboxPhoneNumberOutcome VerifySMSSandboxPhoneNumber(const Model::VerifySMSSandboxPhoneNumberRequest& request) const; /** * A Callable wrapper for VerifySMSSandboxPhoneNumber that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::VerifySMSSandboxPhoneNumberOutcomeCallable VerifySMSSandboxPhoneNumberCallable(const VerifySMSSandboxPhoneNumberRequestT& request) const { return SubmitCallable(&SNSClient::VerifySMSSandboxPhoneNumber, request); } /** * An Async wrapper for VerifySMSSandboxPhoneNumber that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void VerifySMSSandboxPhoneNumberAsync(const VerifySMSSandboxPhoneNumberRequestT& request, const VerifySMSSandboxPhoneNumberResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SNSClient::VerifySMSSandboxPhoneNumber, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const SNSClientConfiguration& clientConfiguration); SNSClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace SNS } // namespace Aws