AWS SDK for C++  0.12.9
AWS SDK for C++
SNSClient.h
Go to the documentation of this file.
1 /*
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License").
5 * You may not use this file except in compliance with the License.
6 * A copy of the License is located at
7 *
8 * http://aws.amazon.com/apache2.0
9 *
10 * or in the "license" file accompanying this file. This file is distributed
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12 * express or implied. See the License for the specific language governing
13 * permissions and limitations under the License.
14 */
15 #pragma once
16 #include <aws/sns/SNS_EXPORTS.h>
17 #include <aws/sns/SNSErrors.h>
38 #include <aws/core/NoResult.h>
41 #include <future>
42 #include <functional>
43 
44 namespace Aws
45 {
46 
47 namespace Http
48 {
49  class HttpClient;
50  class HttpClientFactory;
51 } // namespace Http
52 
53 namespace Utils
54 {
55  template< typename R, typename E> class Outcome;
56 
57 namespace Threading
58 {
59  class Executor;
60 } // namespace Threading
61 
62 namespace Xml
63 {
64  class XmlDocument;
65 } // namespace Xml
66 } // namespace Utils
67 
68 namespace Auth
69 {
70  class AWSCredentials;
71  class AWSCredentialsProvider;
72 } // namespace Auth
73 
74 namespace Client
75 {
76  class RetryStrategy;
77 } // namespace Client
78 
79 namespace SNS
80 {
81 
82 namespace Model
83 {
84  class AddPermissionRequest;
85  class ConfirmSubscriptionRequest;
86  class CreatePlatformApplicationRequest;
87  class CreatePlatformEndpointRequest;
88  class CreateTopicRequest;
89  class DeleteEndpointRequest;
90  class DeletePlatformApplicationRequest;
91  class DeleteTopicRequest;
92  class GetEndpointAttributesRequest;
93  class GetPlatformApplicationAttributesRequest;
94  class GetSubscriptionAttributesRequest;
95  class GetTopicAttributesRequest;
96  class ListEndpointsByPlatformApplicationRequest;
97  class ListPlatformApplicationsRequest;
98  class ListSubscriptionsRequest;
99  class ListSubscriptionsByTopicRequest;
100  class ListTopicsRequest;
101  class PublishRequest;
102  class RemovePermissionRequest;
103  class SetEndpointAttributesRequest;
104  class SetPlatformApplicationAttributesRequest;
105  class SetSubscriptionAttributesRequest;
106  class SetTopicAttributesRequest;
107  class SubscribeRequest;
109 
135 
136  typedef std::future<AddPermissionOutcome> AddPermissionOutcomeCallable;
137  typedef std::future<ConfirmSubscriptionOutcome> ConfirmSubscriptionOutcomeCallable;
138  typedef std::future<CreatePlatformApplicationOutcome> CreatePlatformApplicationOutcomeCallable;
139  typedef std::future<CreatePlatformEndpointOutcome> CreatePlatformEndpointOutcomeCallable;
140  typedef std::future<CreateTopicOutcome> CreateTopicOutcomeCallable;
141  typedef std::future<DeleteEndpointOutcome> DeleteEndpointOutcomeCallable;
142  typedef std::future<DeletePlatformApplicationOutcome> DeletePlatformApplicationOutcomeCallable;
143  typedef std::future<DeleteTopicOutcome> DeleteTopicOutcomeCallable;
144  typedef std::future<GetEndpointAttributesOutcome> GetEndpointAttributesOutcomeCallable;
145  typedef std::future<GetPlatformApplicationAttributesOutcome> GetPlatformApplicationAttributesOutcomeCallable;
146  typedef std::future<GetSubscriptionAttributesOutcome> GetSubscriptionAttributesOutcomeCallable;
147  typedef std::future<GetTopicAttributesOutcome> GetTopicAttributesOutcomeCallable;
148  typedef std::future<ListEndpointsByPlatformApplicationOutcome> ListEndpointsByPlatformApplicationOutcomeCallable;
149  typedef std::future<ListPlatformApplicationsOutcome> ListPlatformApplicationsOutcomeCallable;
150  typedef std::future<ListSubscriptionsOutcome> ListSubscriptionsOutcomeCallable;
151  typedef std::future<ListSubscriptionsByTopicOutcome> ListSubscriptionsByTopicOutcomeCallable;
152  typedef std::future<ListTopicsOutcome> ListTopicsOutcomeCallable;
153  typedef std::future<PublishOutcome> PublishOutcomeCallable;
154  typedef std::future<RemovePermissionOutcome> RemovePermissionOutcomeCallable;
155  typedef std::future<SetEndpointAttributesOutcome> SetEndpointAttributesOutcomeCallable;
156  typedef std::future<SetPlatformApplicationAttributesOutcome> SetPlatformApplicationAttributesOutcomeCallable;
157  typedef std::future<SetSubscriptionAttributesOutcome> SetSubscriptionAttributesOutcomeCallable;
158  typedef std::future<SetTopicAttributesOutcome> SetTopicAttributesOutcomeCallable;
159  typedef std::future<SubscribeOutcome> SubscribeOutcomeCallable;
160  typedef std::future<UnsubscribeOutcome> UnsubscribeOutcomeCallable;
161 } // namespace Model
162 
163  class SNSClient;
164 
165  typedef std::function<void(const SNSClient*, const Model::AddPermissionRequest&, const Model::AddPermissionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AddPermissionResponseReceivedHandler;
166  typedef std::function<void(const SNSClient*, const Model::ConfirmSubscriptionRequest&, const Model::ConfirmSubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ConfirmSubscriptionResponseReceivedHandler;
167  typedef std::function<void(const SNSClient*, const Model::CreatePlatformApplicationRequest&, const Model::CreatePlatformApplicationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreatePlatformApplicationResponseReceivedHandler;
168  typedef std::function<void(const SNSClient*, const Model::CreatePlatformEndpointRequest&, const Model::CreatePlatformEndpointOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreatePlatformEndpointResponseReceivedHandler;
169  typedef std::function<void(const SNSClient*, const Model::CreateTopicRequest&, const Model::CreateTopicOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTopicResponseReceivedHandler;
170  typedef std::function<void(const SNSClient*, const Model::DeleteEndpointRequest&, const Model::DeleteEndpointOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteEndpointResponseReceivedHandler;
171  typedef std::function<void(const SNSClient*, const Model::DeletePlatformApplicationRequest&, const Model::DeletePlatformApplicationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePlatformApplicationResponseReceivedHandler;
172  typedef std::function<void(const SNSClient*, const Model::DeleteTopicRequest&, const Model::DeleteTopicOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTopicResponseReceivedHandler;
173  typedef std::function<void(const SNSClient*, const Model::GetEndpointAttributesRequest&, const Model::GetEndpointAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetEndpointAttributesResponseReceivedHandler;
174  typedef std::function<void(const SNSClient*, const Model::GetPlatformApplicationAttributesRequest&, const Model::GetPlatformApplicationAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetPlatformApplicationAttributesResponseReceivedHandler;
175  typedef std::function<void(const SNSClient*, const Model::GetSubscriptionAttributesRequest&, const Model::GetSubscriptionAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetSubscriptionAttributesResponseReceivedHandler;
176  typedef std::function<void(const SNSClient*, const Model::GetTopicAttributesRequest&, const Model::GetTopicAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTopicAttributesResponseReceivedHandler;
177  typedef std::function<void(const SNSClient*, const Model::ListEndpointsByPlatformApplicationRequest&, const Model::ListEndpointsByPlatformApplicationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListEndpointsByPlatformApplicationResponseReceivedHandler;
178  typedef std::function<void(const SNSClient*, const Model::ListPlatformApplicationsRequest&, const Model::ListPlatformApplicationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListPlatformApplicationsResponseReceivedHandler;
179  typedef std::function<void(const SNSClient*, const Model::ListSubscriptionsRequest&, const Model::ListSubscriptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListSubscriptionsResponseReceivedHandler;
180  typedef std::function<void(const SNSClient*, const Model::ListSubscriptionsByTopicRequest&, const Model::ListSubscriptionsByTopicOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListSubscriptionsByTopicResponseReceivedHandler;
181  typedef std::function<void(const SNSClient*, const Model::ListTopicsRequest&, const Model::ListTopicsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTopicsResponseReceivedHandler;
182  typedef std::function<void(const SNSClient*, const Model::PublishRequest&, const Model::PublishOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PublishResponseReceivedHandler;
183  typedef std::function<void(const SNSClient*, const Model::RemovePermissionRequest&, const Model::RemovePermissionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RemovePermissionResponseReceivedHandler;
184  typedef std::function<void(const SNSClient*, const Model::SetEndpointAttributesRequest&, const Model::SetEndpointAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SetEndpointAttributesResponseReceivedHandler;
185  typedef std::function<void(const SNSClient*, const Model::SetPlatformApplicationAttributesRequest&, const Model::SetPlatformApplicationAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SetPlatformApplicationAttributesResponseReceivedHandler;
186  typedef std::function<void(const SNSClient*, const Model::SetSubscriptionAttributesRequest&, const Model::SetSubscriptionAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SetSubscriptionAttributesResponseReceivedHandler;
187  typedef std::function<void(const SNSClient*, const Model::SetTopicAttributesRequest&, const Model::SetTopicAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SetTopicAttributesResponseReceivedHandler;
188  typedef std::function<void(const SNSClient*, const Model::SubscribeRequest&, const Model::SubscribeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SubscribeResponseReceivedHandler;
189  typedef std::function<void(const SNSClient*, const Model::UnsubscribeRequest&, const Model::UnsubscribeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UnsubscribeResponseReceivedHandler;
190 
208  {
209  public:
211 
216  SNSClient(const Client::ClientConfiguration& clientConfiguration = Client::ClientConfiguration());
217 
222  SNSClient(const Auth::AWSCredentials& credentials, const Client::ClientConfiguration& clientConfiguration = Client::ClientConfiguration());
223 
228  SNSClient(const std::shared_ptr<Auth::AWSCredentialsProvider>& credentialsProvider,
229  const Client::ClientConfiguration& clientConfiguration = Client::ClientConfiguration());
230 
231  virtual ~SNSClient();
232 
237  virtual Model::AddPermissionOutcome AddPermission(const Model::AddPermissionRequest& request) const;
238 
245  virtual Model::AddPermissionOutcomeCallable AddPermissionCallable(const Model::AddPermissionRequest& request) const;
246 
253  virtual void AddPermissionAsync(const Model::AddPermissionRequest& request, const AddPermissionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
254 
262  virtual Model::ConfirmSubscriptionOutcome ConfirmSubscription(const Model::ConfirmSubscriptionRequest& request) const;
263 
273  virtual Model::ConfirmSubscriptionOutcomeCallable ConfirmSubscriptionCallable(const Model::ConfirmSubscriptionRequest& request) const;
274 
284  virtual void ConfirmSubscriptionAsync(const Model::ConfirmSubscriptionRequest& request, const ConfirmSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
285 
303  virtual Model::CreatePlatformApplicationOutcome CreatePlatformApplication(const Model::CreatePlatformApplicationRequest& request) const;
304 
324  virtual Model::CreatePlatformApplicationOutcomeCallable CreatePlatformApplicationCallable(const Model::CreatePlatformApplicationRequest& request) const;
325 
345  virtual void CreatePlatformApplicationAsync(const Model::CreatePlatformApplicationRequest& request, const CreatePlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
346 
367  virtual Model::CreatePlatformEndpointOutcome CreatePlatformEndpoint(const Model::CreatePlatformEndpointRequest& request) const;
368 
391  virtual Model::CreatePlatformEndpointOutcomeCallable CreatePlatformEndpointCallable(const Model::CreatePlatformEndpointRequest& request) const;
392 
415  virtual void CreatePlatformEndpointAsync(const Model::CreatePlatformEndpointRequest& request, const CreatePlatformEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
416 
424  virtual Model::CreateTopicOutcome CreateTopic(const Model::CreateTopicRequest& request) const;
425 
435  virtual Model::CreateTopicOutcomeCallable CreateTopicCallable(const Model::CreateTopicRequest& request) const;
436 
446  virtual void CreateTopicAsync(const Model::CreateTopicRequest& request, const CreateTopicResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
447 
454  virtual Model::DeleteEndpointOutcome DeleteEndpoint(const Model::DeleteEndpointRequest& request) const;
455 
464  virtual Model::DeleteEndpointOutcomeCallable DeleteEndpointCallable(const Model::DeleteEndpointRequest& request) const;
465 
474  virtual void DeleteEndpointAsync(const Model::DeleteEndpointRequest& request, const DeleteEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
475 
482  virtual Model::DeletePlatformApplicationOutcome DeletePlatformApplication(const Model::DeletePlatformApplicationRequest& request) const;
483 
492  virtual Model::DeletePlatformApplicationOutcomeCallable DeletePlatformApplicationCallable(const Model::DeletePlatformApplicationRequest& request) const;
493 
502  virtual void DeletePlatformApplicationAsync(const Model::DeletePlatformApplicationRequest& request, const DeletePlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
503 
510  virtual Model::DeleteTopicOutcome DeleteTopic(const Model::DeleteTopicRequest& request) const;
511 
520  virtual Model::DeleteTopicOutcomeCallable DeleteTopicCallable(const Model::DeleteTopicRequest& request) const;
521 
530  virtual void DeleteTopicAsync(const Model::DeleteTopicRequest& request, const DeleteTopicResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
531 
538  virtual Model::GetEndpointAttributesOutcome GetEndpointAttributes(const Model::GetEndpointAttributesRequest& request) const;
539 
548  virtual Model::GetEndpointAttributesOutcomeCallable GetEndpointAttributesCallable(const Model::GetEndpointAttributesRequest& request) const;
549 
558  virtual void GetEndpointAttributesAsync(const Model::GetEndpointAttributesRequest& request, const GetEndpointAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
559 
566  virtual Model::GetPlatformApplicationAttributesOutcome GetPlatformApplicationAttributes(const Model::GetPlatformApplicationAttributesRequest& request) const;
567 
576  virtual Model::GetPlatformApplicationAttributesOutcomeCallable GetPlatformApplicationAttributesCallable(const Model::GetPlatformApplicationAttributesRequest& request) const;
577 
586  virtual void GetPlatformApplicationAttributesAsync(const Model::GetPlatformApplicationAttributesRequest& request, const GetPlatformApplicationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
587 
591  virtual Model::GetSubscriptionAttributesOutcome GetSubscriptionAttributes(const Model::GetSubscriptionAttributesRequest& request) const;
592 
598  virtual Model::GetSubscriptionAttributesOutcomeCallable GetSubscriptionAttributesCallable(const Model::GetSubscriptionAttributesRequest& request) const;
599 
605  virtual void GetSubscriptionAttributesAsync(const Model::GetSubscriptionAttributesRequest& request, const GetSubscriptionAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
606 
611  virtual Model::GetTopicAttributesOutcome GetTopicAttributes(const Model::GetTopicAttributesRequest& request) const;
612 
619  virtual Model::GetTopicAttributesOutcomeCallable GetTopicAttributesCallable(const Model::GetTopicAttributesRequest& request) const;
620 
627  virtual void GetTopicAttributesAsync(const Model::GetTopicAttributesRequest& request, const GetTopicAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
628 
641  virtual Model::ListEndpointsByPlatformApplicationOutcome ListEndpointsByPlatformApplication(const Model::ListEndpointsByPlatformApplicationRequest& request) const;
642 
657  virtual Model::ListEndpointsByPlatformApplicationOutcomeCallable ListEndpointsByPlatformApplicationCallable(const Model::ListEndpointsByPlatformApplicationRequest& request) const;
658 
673  virtual void ListEndpointsByPlatformApplicationAsync(const Model::ListEndpointsByPlatformApplicationRequest& request, const ListEndpointsByPlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
674 
687  virtual Model::ListPlatformApplicationsOutcome ListPlatformApplications(const Model::ListPlatformApplicationsRequest& request) const;
688 
703  virtual Model::ListPlatformApplicationsOutcomeCallable ListPlatformApplicationsCallable(const Model::ListPlatformApplicationsRequest& request) const;
704 
719  virtual void ListPlatformApplicationsAsync(const Model::ListPlatformApplicationsRequest& request, const ListPlatformApplicationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
720 
728  virtual Model::ListSubscriptionsOutcome ListSubscriptions(const Model::ListSubscriptionsRequest& request) const;
729 
739  virtual Model::ListSubscriptionsOutcomeCallable ListSubscriptionsCallable(const Model::ListSubscriptionsRequest& request) const;
740 
750  virtual void ListSubscriptionsAsync(const Model::ListSubscriptionsRequest& request, const ListSubscriptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
751 
759  virtual Model::ListSubscriptionsByTopicOutcome ListSubscriptionsByTopic(const Model::ListSubscriptionsByTopicRequest& request) const;
760 
770  virtual Model::ListSubscriptionsByTopicOutcomeCallable ListSubscriptionsByTopicCallable(const Model::ListSubscriptionsByTopicRequest& request) const;
771 
781  virtual void ListSubscriptionsByTopicAsync(const Model::ListSubscriptionsByTopicRequest& request, const ListSubscriptionsByTopicResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
782 
789  virtual Model::ListTopicsOutcome ListTopics(const Model::ListTopicsRequest& request) const;
790 
799  virtual Model::ListTopicsOutcomeCallable ListTopicsCallable(const Model::ListTopicsRequest& request) const;
800 
809  virtual void ListTopicsAsync(const Model::ListTopicsRequest& request, const ListTopicsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
810 
822  virtual Model::PublishOutcome Publish(const Model::PublishRequest& request) const;
823 
837  virtual Model::PublishOutcomeCallable PublishCallable(const Model::PublishRequest& request) const;
838 
852  virtual void PublishAsync(const Model::PublishRequest& request, const PublishResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
853 
857  virtual Model::RemovePermissionOutcome RemovePermission(const Model::RemovePermissionRequest& request) const;
858 
864  virtual Model::RemovePermissionOutcomeCallable RemovePermissionCallable(const Model::RemovePermissionRequest& request) const;
865 
871  virtual void RemovePermissionAsync(const Model::RemovePermissionRequest& request, const RemovePermissionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
872 
879  virtual Model::SetEndpointAttributesOutcome SetEndpointAttributes(const Model::SetEndpointAttributesRequest& request) const;
880 
889  virtual Model::SetEndpointAttributesOutcomeCallable SetEndpointAttributesCallable(const Model::SetEndpointAttributesRequest& request) const;
890 
899  virtual void SetEndpointAttributesAsync(const Model::SetEndpointAttributesRequest& request, const SetEndpointAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
900 
907  virtual Model::SetPlatformApplicationAttributesOutcome SetPlatformApplicationAttributes(const Model::SetPlatformApplicationAttributesRequest& request) const;
908 
917  virtual Model::SetPlatformApplicationAttributesOutcomeCallable SetPlatformApplicationAttributesCallable(const Model::SetPlatformApplicationAttributesRequest& request) const;
918 
927  virtual void SetPlatformApplicationAttributesAsync(const Model::SetPlatformApplicationAttributesRequest& request, const SetPlatformApplicationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
928 
933  virtual Model::SetSubscriptionAttributesOutcome SetSubscriptionAttributes(const Model::SetSubscriptionAttributesRequest& request) const;
934 
941  virtual Model::SetSubscriptionAttributesOutcomeCallable SetSubscriptionAttributesCallable(const Model::SetSubscriptionAttributesRequest& request) const;
942 
949  virtual void SetSubscriptionAttributesAsync(const Model::SetSubscriptionAttributesRequest& request, const SetSubscriptionAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
950 
954  virtual Model::SetTopicAttributesOutcome SetTopicAttributes(const Model::SetTopicAttributesRequest& request) const;
955 
961  virtual Model::SetTopicAttributesOutcomeCallable SetTopicAttributesCallable(const Model::SetTopicAttributesRequest& request) const;
962 
968  virtual void SetTopicAttributesAsync(const Model::SetTopicAttributesRequest& request, const SetTopicAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
969 
976  virtual Model::SubscribeOutcome Subscribe(const Model::SubscribeRequest& request) const;
977 
986  virtual Model::SubscribeOutcomeCallable SubscribeCallable(const Model::SubscribeRequest& request) const;
987 
996  virtual void SubscribeAsync(const Model::SubscribeRequest& request, const SubscribeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
997 
1007  virtual Model::UnsubscribeOutcome Unsubscribe(const Model::UnsubscribeRequest& request) const;
1008 
1020  virtual Model::UnsubscribeOutcomeCallable UnsubscribeCallable(const Model::UnsubscribeRequest& request) const;
1021 
1033  virtual void UnsubscribeAsync(const Model::UnsubscribeRequest& request, const UnsubscribeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1034 
1035 
1036  private:
1037  void init(const Client::ClientConfiguration& clientConfiguration);
1038 
1040  void AddPermissionAsyncHelper(const Model::AddPermissionRequest& request, const AddPermissionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1041  void ConfirmSubscriptionAsyncHelper(const Model::ConfirmSubscriptionRequest& request, const ConfirmSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1042  void CreatePlatformApplicationAsyncHelper(const Model::CreatePlatformApplicationRequest& request, const CreatePlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1043  void CreatePlatformEndpointAsyncHelper(const Model::CreatePlatformEndpointRequest& request, const CreatePlatformEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1044  void CreateTopicAsyncHelper(const Model::CreateTopicRequest& request, const CreateTopicResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1045  void DeleteEndpointAsyncHelper(const Model::DeleteEndpointRequest& request, const DeleteEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1046  void DeletePlatformApplicationAsyncHelper(const Model::DeletePlatformApplicationRequest& request, const DeletePlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1047  void DeleteTopicAsyncHelper(const Model::DeleteTopicRequest& request, const DeleteTopicResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1048  void GetEndpointAttributesAsyncHelper(const Model::GetEndpointAttributesRequest& request, const GetEndpointAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1049  void GetPlatformApplicationAttributesAsyncHelper(const Model::GetPlatformApplicationAttributesRequest& request, const GetPlatformApplicationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1050  void GetSubscriptionAttributesAsyncHelper(const Model::GetSubscriptionAttributesRequest& request, const GetSubscriptionAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1051  void GetTopicAttributesAsyncHelper(const Model::GetTopicAttributesRequest& request, const GetTopicAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1052  void ListEndpointsByPlatformApplicationAsyncHelper(const Model::ListEndpointsByPlatformApplicationRequest& request, const ListEndpointsByPlatformApplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1053  void ListPlatformApplicationsAsyncHelper(const Model::ListPlatformApplicationsRequest& request, const ListPlatformApplicationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1054  void ListSubscriptionsAsyncHelper(const Model::ListSubscriptionsRequest& request, const ListSubscriptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1055  void ListSubscriptionsByTopicAsyncHelper(const Model::ListSubscriptionsByTopicRequest& request, const ListSubscriptionsByTopicResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1056  void ListTopicsAsyncHelper(const Model::ListTopicsRequest& request, const ListTopicsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1057  void PublishAsyncHelper(const Model::PublishRequest& request, const PublishResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1058  void RemovePermissionAsyncHelper(const Model::RemovePermissionRequest& request, const RemovePermissionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1059  void SetEndpointAttributesAsyncHelper(const Model::SetEndpointAttributesRequest& request, const SetEndpointAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1060  void SetPlatformApplicationAttributesAsyncHelper(const Model::SetPlatformApplicationAttributesRequest& request, const SetPlatformApplicationAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1061  void SetSubscriptionAttributesAsyncHelper(const Model::SetSubscriptionAttributesRequest& request, const SetSubscriptionAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1062  void SetTopicAttributesAsyncHelper(const Model::SetTopicAttributesRequest& request, const SetTopicAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1063  void SubscribeAsyncHelper(const Model::SubscribeRequest& request, const SubscribeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1064  void UnsubscribeAsyncHelper(const Model::UnsubscribeRequest& request, const UnsubscribeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1065 
1066  Aws::String m_uri;
1067  std::shared_ptr<Utils::Threading::Executor> m_executor;
1068  };
1069 
1070 } // namespace SNS
1071 } // namespace Aws
Aws::Utils::Outcome< NoResult, Aws::Client::AWSError< SNSErrors > > UnsubscribeOutcome
Definition: SNSClient.h:134
std::function< void(const SNSClient *, const Model::ListPlatformApplicationsRequest &, const Model::ListPlatformApplicationsOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > ListPlatformApplicationsResponseReceivedHandler
Definition: SNSClient.h:178
std::future< UnsubscribeOutcome > UnsubscribeOutcomeCallable
Definition: SNSClient.h:160
std::function< void(const SNSClient *, const Model::GetSubscriptionAttributesRequest &, const Model::GetSubscriptionAttributesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > GetSubscriptionAttributesResponseReceivedHandler
Definition: SNSClient.h:175
std::function< void(const SNSClient *, const Model::SetSubscriptionAttributesRequest &, const Model::SetSubscriptionAttributesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > SetSubscriptionAttributesResponseReceivedHandler
Definition: SNSClient.h:186
std::future< GetEndpointAttributesOutcome > GetEndpointAttributesOutcomeCallable
Definition: SNSClient.h:144
Aws::Utils::Outcome< ConfirmSubscriptionResult, Aws::Client::AWSError< SNSErrors > > ConfirmSubscriptionOutcome
Definition: SNSClient.h:111
Aws::Utils::Outcome< GetPlatformApplicationAttributesResult, Aws::Client::AWSError< SNSErrors > > GetPlatformApplicationAttributesOutcome
Definition: SNSClient.h:119
Aws::Utils::Outcome< NoResult, Aws::Client::AWSError< SNSErrors > > SetSubscriptionAttributesOutcome
Definition: SNSClient.h:131
Aws::Utils::Outcome< GetSubscriptionAttributesResult, Aws::Client::AWSError< SNSErrors > > GetSubscriptionAttributesOutcome
Definition: SNSClient.h:120
Aws::Utils::Outcome< GetEndpointAttributesResult, Aws::Client::AWSError< SNSErrors > > GetEndpointAttributesOutcome
Definition: SNSClient.h:118
std::function< void(const SNSClient *, const Model::ListEndpointsByPlatformApplicationRequest &, const Model::ListEndpointsByPlatformApplicationOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > ListEndpointsByPlatformApplicationResponseReceivedHandler
Definition: SNSClient.h:177
std::function< void(const SNSClient *, const Model::CreatePlatformApplicationRequest &, const Model::CreatePlatformApplicationOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > CreatePlatformApplicationResponseReceivedHandler
Definition: SNSClient.h:167
std::function< void(const SNSClient *, const Model::ListTopicsRequest &, const Model::ListTopicsOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > ListTopicsResponseReceivedHandler
Definition: SNSClient.h:181
std::future< CreatePlatformEndpointOutcome > CreatePlatformEndpointOutcomeCallable
Definition: SNSClient.h:139
std::function< void(const SNSClient *, const Model::SetEndpointAttributesRequest &, const Model::SetEndpointAttributesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > SetEndpointAttributesResponseReceivedHandler
Definition: SNSClient.h:184
std::function< void(const SNSClient *, const Model::CreatePlatformEndpointRequest &, const Model::CreatePlatformEndpointOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > CreatePlatformEndpointResponseReceivedHandler
Definition: SNSClient.h:168
std::future< PublishOutcome > PublishOutcomeCallable
Definition: SNSClient.h:153
Aws::Utils::Outcome< NoResult, Aws::Client::AWSError< SNSErrors > > SetPlatformApplicationAttributesOutcome
Definition: SNSClient.h:130
std::function< void(const SNSClient *, const Model::GetTopicAttributesRequest &, const Model::GetTopicAttributesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > GetTopicAttributesResponseReceivedHandler
Definition: SNSClient.h:176
std::future< GetSubscriptionAttributesOutcome > GetSubscriptionAttributesOutcomeCallable
Definition: SNSClient.h:146
std::function< void(const SNSClient *, const Model::GetPlatformApplicationAttributesRequest &, const Model::GetPlatformApplicationAttributesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > GetPlatformApplicationAttributesResponseReceivedHandler
Definition: SNSClient.h:174
Aws::Utils::Outcome< ListSubscriptionsByTopicResult, Aws::Client::AWSError< SNSErrors > > ListSubscriptionsByTopicOutcome
Definition: SNSClient.h:125
std::future< CreateTopicOutcome > CreateTopicOutcomeCallable
Definition: SNSClient.h:140
std::future< SubscribeOutcome > SubscribeOutcomeCallable
Definition: SNSClient.h:159
std::function< void(const SNSClient *, const Model::UnsubscribeRequest &, const Model::UnsubscribeOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > UnsubscribeResponseReceivedHandler
Definition: SNSClient.h:189
std::future< SetSubscriptionAttributesOutcome > SetSubscriptionAttributesOutcomeCallable
Definition: SNSClient.h:157
std::function< void(const SNSClient *, const Model::DeleteTopicRequest &, const Model::DeleteTopicOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DeleteTopicResponseReceivedHandler
Definition: SNSClient.h:172
std::future< ListTopicsOutcome > ListTopicsOutcomeCallable
Definition: SNSClient.h:152
Aws::Utils::Outcome< CreatePlatformApplicationResult, Aws::Client::AWSError< SNSErrors > > CreatePlatformApplicationOutcome
Definition: SNSClient.h:112
std::function< void(const SNSClient *, const Model::SetTopicAttributesRequest &, const Model::SetTopicAttributesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > SetTopicAttributesResponseReceivedHandler
Definition: SNSClient.h:187
std::future< SetTopicAttributesOutcome > SetTopicAttributesOutcomeCallable
Definition: SNSClient.h:158
Aws::Utils::Outcome< CreatePlatformEndpointResult, Aws::Client::AWSError< SNSErrors > > CreatePlatformEndpointOutcome
Definition: SNSClient.h:113
Aws::Utils::Outcome< ListEndpointsByPlatformApplicationResult, Aws::Client::AWSError< SNSErrors > > ListEndpointsByPlatformApplicationOutcome
Definition: SNSClient.h:122
Aws::Utils::Outcome< NoResult, Aws::Client::AWSError< SNSErrors > > SetEndpointAttributesOutcome
Definition: SNSClient.h:129
Aws::Utils::Outcome< SubscribeResult, Aws::Client::AWSError< SNSErrors > > SubscribeOutcome
Definition: SNSClient.h:133
std::future< GetTopicAttributesOutcome > GetTopicAttributesOutcomeCallable
Definition: SNSClient.h:147
std::function< void(const SNSClient *, const Model::SetPlatformApplicationAttributesRequest &, const Model::SetPlatformApplicationAttributesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > SetPlatformApplicationAttributesResponseReceivedHandler
Definition: SNSClient.h:185
std::future< ListSubscriptionsOutcome > ListSubscriptionsOutcomeCallable
Definition: SNSClient.h:150
std::future< AddPermissionOutcome > AddPermissionOutcomeCallable
Definition: SNSClient.h:136
std::function< void(const SNSClient *, const Model::ListSubscriptionsRequest &, const Model::ListSubscriptionsOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > ListSubscriptionsResponseReceivedHandler
Definition: SNSClient.h:179
std::function< void(const SNSClient *, const Model::AddPermissionRequest &, const Model::AddPermissionOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > AddPermissionResponseReceivedHandler
Definition: SNSClient.h:163
std::future< DeleteTopicOutcome > DeleteTopicOutcomeCallable
Definition: SNSClient.h:143
Aws::Utils::Outcome< PublishResult, Aws::Client::AWSError< SNSErrors > > PublishOutcome
Definition: SNSClient.h:127
std::function< void(const SNSClient *, const Model::CreateTopicRequest &, const Model::CreateTopicOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > CreateTopicResponseReceivedHandler
Definition: SNSClient.h:169
Aws::Utils::Outcome< NoResult, Aws::Client::AWSError< SNSErrors > > DeletePlatformApplicationOutcome
Definition: SNSClient.h:116
std::function< void(const SNSClient *, const Model::DeletePlatformApplicationRequest &, const Model::DeletePlatformApplicationOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DeletePlatformApplicationResponseReceivedHandler
Definition: SNSClient.h:171
std::function< void(const SNSClient *, const Model::DeleteEndpointRequest &, const Model::DeleteEndpointOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DeleteEndpointResponseReceivedHandler
Definition: SNSClient.h:170
Aws::Client::AWSXMLClient BASECLASS
Definition: SNSClient.h:210
std::future< ListSubscriptionsByTopicOutcome > ListSubscriptionsByTopicOutcomeCallable
Definition: SNSClient.h:151
std::function< void(const SNSClient *, const Model::SubscribeRequest &, const Model::SubscribeOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > SubscribeResponseReceivedHandler
Definition: SNSClient.h:188
Aws::Utils::Outcome< CreateTopicResult, Aws::Client::AWSError< SNSErrors > > CreateTopicOutcome
Definition: SNSClient.h:114
Aws::Utils::Outcome< ListTopicsResult, Aws::Client::AWSError< SNSErrors > > ListTopicsOutcome
Definition: SNSClient.h:126
Aws::Utils::Outcome< ListPlatformApplicationsResult, Aws::Client::AWSError< SNSErrors > > ListPlatformApplicationsOutcome
Definition: SNSClient.h:123
std::future< ConfirmSubscriptionOutcome > ConfirmSubscriptionOutcomeCallable
Definition: SNSClient.h:137
std::function< void(const SNSClient *, const Model::RemovePermissionRequest &, const Model::RemovePermissionOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > RemovePermissionResponseReceivedHandler
Definition: SNSClient.h:183
Aws::Utils::Outcome< NoResult, Aws::Client::AWSError< SNSErrors > > SetTopicAttributesOutcome
Definition: SNSClient.h:132
Aws::Utils::Outcome< NoResult, Aws::Client::AWSError< SNSErrors > > DeleteTopicOutcome
Definition: SNSClient.h:117
std::future< CreatePlatformApplicationOutcome > CreatePlatformApplicationOutcomeCallable
Definition: SNSClient.h:138
std::future< RemovePermissionOutcome > RemovePermissionOutcomeCallable
Definition: SNSClient.h:154
std::function< void(const SNSClient *, const Model::ListSubscriptionsByTopicRequest &, const Model::ListSubscriptionsByTopicOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > ListSubscriptionsByTopicResponseReceivedHandler
Definition: SNSClient.h:180
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition: AWSString.h:97
#define AWS_SNS_API
Definition: SNS_EXPORTS.h:34
std::future< DeleteEndpointOutcome > DeleteEndpointOutcomeCallable
Definition: SNSClient.h:141
std::future< GetPlatformApplicationAttributesOutcome > GetPlatformApplicationAttributesOutcomeCallable
Definition: SNSClient.h:145
std::future< DeletePlatformApplicationOutcome > DeletePlatformApplicationOutcomeCallable
Definition: SNSClient.h:142
Aws::Utils::Outcome< NoResult, Aws::Client::AWSError< SNSErrors > > AddPermissionOutcome
Definition: SNSClient.h:108
std::future< SetEndpointAttributesOutcome > SetEndpointAttributesOutcomeCallable
Definition: SNSClient.h:155
std::future< SetPlatformApplicationAttributesOutcome > SetPlatformApplicationAttributesOutcomeCallable
Definition: SNSClient.h:156
std::future< ListPlatformApplicationsOutcome > ListPlatformApplicationsOutcomeCallable
Definition: SNSClient.h:149
Aws::Utils::Outcome< NoResult, Aws::Client::AWSError< SNSErrors > > RemovePermissionOutcome
Definition: SNSClient.h:128
Aws::Utils::Outcome< ListSubscriptionsResult, Aws::Client::AWSError< SNSErrors > > ListSubscriptionsOutcome
Definition: SNSClient.h:124
Aws::Utils::Outcome< GetTopicAttributesResult, Aws::Client::AWSError< SNSErrors > > GetTopicAttributesOutcome
Definition: SNSClient.h:121
Aws::Utils::Outcome< NoResult, Aws::Client::AWSError< SNSErrors > > DeleteEndpointOutcome
Definition: SNSClient.h:115
std::function< void(const SNSClient *, const Model::GetEndpointAttributesRequest &, const Model::GetEndpointAttributesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > GetEndpointAttributesResponseReceivedHandler
Definition: SNSClient.h:173
std::function< void(const SNSClient *, const Model::PublishRequest &, const Model::PublishOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > PublishResponseReceivedHandler
Definition: SNSClient.h:182
JSON (JavaScript Object Notation).
std::function< void(const SNSClient *, const Model::ConfirmSubscriptionRequest &, const Model::ConfirmSubscriptionOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > ConfirmSubscriptionResponseReceivedHandler
Definition: SNSClient.h:166
std::future< ListEndpointsByPlatformApplicationOutcome > ListEndpointsByPlatformApplicationOutcomeCallable
Definition: SNSClient.h:148