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