1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/pinpoint-email/PinpointEmail_EXPORTS.h>
8 #include <aws/pinpoint-email/PinpointEmailErrors.h>
9 #include <aws/core/client/AWSError.h>
10 #include <aws/core/client/ClientConfiguration.h>
11 #include <aws/core/client/AWSClient.h>
12 #include <aws/core/utils/memory/stl/AWSString.h>
13 #include <aws/core/utils/json/JsonSerializer.h>
14 #include <aws/pinpoint-email/model/CreateConfigurationSetResult.h>
15 #include <aws/pinpoint-email/model/CreateConfigurationSetEventDestinationResult.h>
16 #include <aws/pinpoint-email/model/CreateDedicatedIpPoolResult.h>
17 #include <aws/pinpoint-email/model/CreateDeliverabilityTestReportResult.h>
18 #include <aws/pinpoint-email/model/CreateEmailIdentityResult.h>
19 #include <aws/pinpoint-email/model/DeleteConfigurationSetResult.h>
20 #include <aws/pinpoint-email/model/DeleteConfigurationSetEventDestinationResult.h>
21 #include <aws/pinpoint-email/model/DeleteDedicatedIpPoolResult.h>
22 #include <aws/pinpoint-email/model/DeleteEmailIdentityResult.h>
23 #include <aws/pinpoint-email/model/GetAccountResult.h>
24 #include <aws/pinpoint-email/model/GetBlacklistReportsResult.h>
25 #include <aws/pinpoint-email/model/GetConfigurationSetResult.h>
26 #include <aws/pinpoint-email/model/GetConfigurationSetEventDestinationsResult.h>
27 #include <aws/pinpoint-email/model/GetDedicatedIpResult.h>
28 #include <aws/pinpoint-email/model/GetDedicatedIpsResult.h>
29 #include <aws/pinpoint-email/model/GetDeliverabilityDashboardOptionsResult.h>
30 #include <aws/pinpoint-email/model/GetDeliverabilityTestReportResult.h>
31 #include <aws/pinpoint-email/model/GetDomainDeliverabilityCampaignResult.h>
32 #include <aws/pinpoint-email/model/GetDomainStatisticsReportResult.h>
33 #include <aws/pinpoint-email/model/GetEmailIdentityResult.h>
34 #include <aws/pinpoint-email/model/ListConfigurationSetsResult.h>
35 #include <aws/pinpoint-email/model/ListDedicatedIpPoolsResult.h>
36 #include <aws/pinpoint-email/model/ListDeliverabilityTestReportsResult.h>
37 #include <aws/pinpoint-email/model/ListDomainDeliverabilityCampaignsResult.h>
38 #include <aws/pinpoint-email/model/ListEmailIdentitiesResult.h>
39 #include <aws/pinpoint-email/model/ListTagsForResourceResult.h>
40 #include <aws/pinpoint-email/model/PutAccountDedicatedIpWarmupAttributesResult.h>
41 #include <aws/pinpoint-email/model/PutAccountSendingAttributesResult.h>
42 #include <aws/pinpoint-email/model/PutConfigurationSetDeliveryOptionsResult.h>
43 #include <aws/pinpoint-email/model/PutConfigurationSetReputationOptionsResult.h>
44 #include <aws/pinpoint-email/model/PutConfigurationSetSendingOptionsResult.h>
45 #include <aws/pinpoint-email/model/PutConfigurationSetTrackingOptionsResult.h>
46 #include <aws/pinpoint-email/model/PutDedicatedIpInPoolResult.h>
47 #include <aws/pinpoint-email/model/PutDedicatedIpWarmupAttributesResult.h>
48 #include <aws/pinpoint-email/model/PutDeliverabilityDashboardOptionResult.h>
49 #include <aws/pinpoint-email/model/PutEmailIdentityDkimAttributesResult.h>
50 #include <aws/pinpoint-email/model/PutEmailIdentityFeedbackAttributesResult.h>
51 #include <aws/pinpoint-email/model/PutEmailIdentityMailFromAttributesResult.h>
52 #include <aws/pinpoint-email/model/SendEmailResult.h>
53 #include <aws/pinpoint-email/model/TagResourceResult.h>
54 #include <aws/pinpoint-email/model/UntagResourceResult.h>
55 #include <aws/pinpoint-email/model/UpdateConfigurationSetEventDestinationResult.h>
56 #include <aws/core/client/AsyncCallerContext.h>
57 #include <aws/core/http/HttpTypes.h>
58 #include <future>
59 #include <functional>
60 
61 namespace Aws
62 {
63 
64 namespace Http
65 {
66   class HttpClient;
67   class HttpClientFactory;
68 } // namespace Http
69 
70 namespace Utils
71 {
72   template< typename R, typename E> class Outcome;
73 namespace Threading
74 {
75   class Executor;
76 } // namespace Threading
77 } // namespace Utils
78 
79 namespace Auth
80 {
81   class AWSCredentials;
82   class AWSCredentialsProvider;
83 } // namespace Auth
84 
85 namespace Client
86 {
87   class RetryStrategy;
88 } // namespace Client
89 
90 namespace PinpointEmail
91 {
92 
93 namespace Model
94 {
95         class CreateConfigurationSetRequest;
96         class CreateConfigurationSetEventDestinationRequest;
97         class CreateDedicatedIpPoolRequest;
98         class CreateDeliverabilityTestReportRequest;
99         class CreateEmailIdentityRequest;
100         class DeleteConfigurationSetRequest;
101         class DeleteConfigurationSetEventDestinationRequest;
102         class DeleteDedicatedIpPoolRequest;
103         class DeleteEmailIdentityRequest;
104         class GetAccountRequest;
105         class GetBlacklistReportsRequest;
106         class GetConfigurationSetRequest;
107         class GetConfigurationSetEventDestinationsRequest;
108         class GetDedicatedIpRequest;
109         class GetDedicatedIpsRequest;
110         class GetDeliverabilityDashboardOptionsRequest;
111         class GetDeliverabilityTestReportRequest;
112         class GetDomainDeliverabilityCampaignRequest;
113         class GetDomainStatisticsReportRequest;
114         class GetEmailIdentityRequest;
115         class ListConfigurationSetsRequest;
116         class ListDedicatedIpPoolsRequest;
117         class ListDeliverabilityTestReportsRequest;
118         class ListDomainDeliverabilityCampaignsRequest;
119         class ListEmailIdentitiesRequest;
120         class ListTagsForResourceRequest;
121         class PutAccountDedicatedIpWarmupAttributesRequest;
122         class PutAccountSendingAttributesRequest;
123         class PutConfigurationSetDeliveryOptionsRequest;
124         class PutConfigurationSetReputationOptionsRequest;
125         class PutConfigurationSetSendingOptionsRequest;
126         class PutConfigurationSetTrackingOptionsRequest;
127         class PutDedicatedIpInPoolRequest;
128         class PutDedicatedIpWarmupAttributesRequest;
129         class PutDeliverabilityDashboardOptionRequest;
130         class PutEmailIdentityDkimAttributesRequest;
131         class PutEmailIdentityFeedbackAttributesRequest;
132         class PutEmailIdentityMailFromAttributesRequest;
133         class SendEmailRequest;
134         class TagResourceRequest;
135         class UntagResourceRequest;
136         class UpdateConfigurationSetEventDestinationRequest;
137 
138         typedef Aws::Utils::Outcome<CreateConfigurationSetResult, PinpointEmailError> CreateConfigurationSetOutcome;
139         typedef Aws::Utils::Outcome<CreateConfigurationSetEventDestinationResult, PinpointEmailError> CreateConfigurationSetEventDestinationOutcome;
140         typedef Aws::Utils::Outcome<CreateDedicatedIpPoolResult, PinpointEmailError> CreateDedicatedIpPoolOutcome;
141         typedef Aws::Utils::Outcome<CreateDeliverabilityTestReportResult, PinpointEmailError> CreateDeliverabilityTestReportOutcome;
142         typedef Aws::Utils::Outcome<CreateEmailIdentityResult, PinpointEmailError> CreateEmailIdentityOutcome;
143         typedef Aws::Utils::Outcome<DeleteConfigurationSetResult, PinpointEmailError> DeleteConfigurationSetOutcome;
144         typedef Aws::Utils::Outcome<DeleteConfigurationSetEventDestinationResult, PinpointEmailError> DeleteConfigurationSetEventDestinationOutcome;
145         typedef Aws::Utils::Outcome<DeleteDedicatedIpPoolResult, PinpointEmailError> DeleteDedicatedIpPoolOutcome;
146         typedef Aws::Utils::Outcome<DeleteEmailIdentityResult, PinpointEmailError> DeleteEmailIdentityOutcome;
147         typedef Aws::Utils::Outcome<GetAccountResult, PinpointEmailError> GetAccountOutcome;
148         typedef Aws::Utils::Outcome<GetBlacklistReportsResult, PinpointEmailError> GetBlacklistReportsOutcome;
149         typedef Aws::Utils::Outcome<GetConfigurationSetResult, PinpointEmailError> GetConfigurationSetOutcome;
150         typedef Aws::Utils::Outcome<GetConfigurationSetEventDestinationsResult, PinpointEmailError> GetConfigurationSetEventDestinationsOutcome;
151         typedef Aws::Utils::Outcome<GetDedicatedIpResult, PinpointEmailError> GetDedicatedIpOutcome;
152         typedef Aws::Utils::Outcome<GetDedicatedIpsResult, PinpointEmailError> GetDedicatedIpsOutcome;
153         typedef Aws::Utils::Outcome<GetDeliverabilityDashboardOptionsResult, PinpointEmailError> GetDeliverabilityDashboardOptionsOutcome;
154         typedef Aws::Utils::Outcome<GetDeliverabilityTestReportResult, PinpointEmailError> GetDeliverabilityTestReportOutcome;
155         typedef Aws::Utils::Outcome<GetDomainDeliverabilityCampaignResult, PinpointEmailError> GetDomainDeliverabilityCampaignOutcome;
156         typedef Aws::Utils::Outcome<GetDomainStatisticsReportResult, PinpointEmailError> GetDomainStatisticsReportOutcome;
157         typedef Aws::Utils::Outcome<GetEmailIdentityResult, PinpointEmailError> GetEmailIdentityOutcome;
158         typedef Aws::Utils::Outcome<ListConfigurationSetsResult, PinpointEmailError> ListConfigurationSetsOutcome;
159         typedef Aws::Utils::Outcome<ListDedicatedIpPoolsResult, PinpointEmailError> ListDedicatedIpPoolsOutcome;
160         typedef Aws::Utils::Outcome<ListDeliverabilityTestReportsResult, PinpointEmailError> ListDeliverabilityTestReportsOutcome;
161         typedef Aws::Utils::Outcome<ListDomainDeliverabilityCampaignsResult, PinpointEmailError> ListDomainDeliverabilityCampaignsOutcome;
162         typedef Aws::Utils::Outcome<ListEmailIdentitiesResult, PinpointEmailError> ListEmailIdentitiesOutcome;
163         typedef Aws::Utils::Outcome<ListTagsForResourceResult, PinpointEmailError> ListTagsForResourceOutcome;
164         typedef Aws::Utils::Outcome<PutAccountDedicatedIpWarmupAttributesResult, PinpointEmailError> PutAccountDedicatedIpWarmupAttributesOutcome;
165         typedef Aws::Utils::Outcome<PutAccountSendingAttributesResult, PinpointEmailError> PutAccountSendingAttributesOutcome;
166         typedef Aws::Utils::Outcome<PutConfigurationSetDeliveryOptionsResult, PinpointEmailError> PutConfigurationSetDeliveryOptionsOutcome;
167         typedef Aws::Utils::Outcome<PutConfigurationSetReputationOptionsResult, PinpointEmailError> PutConfigurationSetReputationOptionsOutcome;
168         typedef Aws::Utils::Outcome<PutConfigurationSetSendingOptionsResult, PinpointEmailError> PutConfigurationSetSendingOptionsOutcome;
169         typedef Aws::Utils::Outcome<PutConfigurationSetTrackingOptionsResult, PinpointEmailError> PutConfigurationSetTrackingOptionsOutcome;
170         typedef Aws::Utils::Outcome<PutDedicatedIpInPoolResult, PinpointEmailError> PutDedicatedIpInPoolOutcome;
171         typedef Aws::Utils::Outcome<PutDedicatedIpWarmupAttributesResult, PinpointEmailError> PutDedicatedIpWarmupAttributesOutcome;
172         typedef Aws::Utils::Outcome<PutDeliverabilityDashboardOptionResult, PinpointEmailError> PutDeliverabilityDashboardOptionOutcome;
173         typedef Aws::Utils::Outcome<PutEmailIdentityDkimAttributesResult, PinpointEmailError> PutEmailIdentityDkimAttributesOutcome;
174         typedef Aws::Utils::Outcome<PutEmailIdentityFeedbackAttributesResult, PinpointEmailError> PutEmailIdentityFeedbackAttributesOutcome;
175         typedef Aws::Utils::Outcome<PutEmailIdentityMailFromAttributesResult, PinpointEmailError> PutEmailIdentityMailFromAttributesOutcome;
176         typedef Aws::Utils::Outcome<SendEmailResult, PinpointEmailError> SendEmailOutcome;
177         typedef Aws::Utils::Outcome<TagResourceResult, PinpointEmailError> TagResourceOutcome;
178         typedef Aws::Utils::Outcome<UntagResourceResult, PinpointEmailError> UntagResourceOutcome;
179         typedef Aws::Utils::Outcome<UpdateConfigurationSetEventDestinationResult, PinpointEmailError> UpdateConfigurationSetEventDestinationOutcome;
180 
181         typedef std::future<CreateConfigurationSetOutcome> CreateConfigurationSetOutcomeCallable;
182         typedef std::future<CreateConfigurationSetEventDestinationOutcome> CreateConfigurationSetEventDestinationOutcomeCallable;
183         typedef std::future<CreateDedicatedIpPoolOutcome> CreateDedicatedIpPoolOutcomeCallable;
184         typedef std::future<CreateDeliverabilityTestReportOutcome> CreateDeliverabilityTestReportOutcomeCallable;
185         typedef std::future<CreateEmailIdentityOutcome> CreateEmailIdentityOutcomeCallable;
186         typedef std::future<DeleteConfigurationSetOutcome> DeleteConfigurationSetOutcomeCallable;
187         typedef std::future<DeleteConfigurationSetEventDestinationOutcome> DeleteConfigurationSetEventDestinationOutcomeCallable;
188         typedef std::future<DeleteDedicatedIpPoolOutcome> DeleteDedicatedIpPoolOutcomeCallable;
189         typedef std::future<DeleteEmailIdentityOutcome> DeleteEmailIdentityOutcomeCallable;
190         typedef std::future<GetAccountOutcome> GetAccountOutcomeCallable;
191         typedef std::future<GetBlacklistReportsOutcome> GetBlacklistReportsOutcomeCallable;
192         typedef std::future<GetConfigurationSetOutcome> GetConfigurationSetOutcomeCallable;
193         typedef std::future<GetConfigurationSetEventDestinationsOutcome> GetConfigurationSetEventDestinationsOutcomeCallable;
194         typedef std::future<GetDedicatedIpOutcome> GetDedicatedIpOutcomeCallable;
195         typedef std::future<GetDedicatedIpsOutcome> GetDedicatedIpsOutcomeCallable;
196         typedef std::future<GetDeliverabilityDashboardOptionsOutcome> GetDeliverabilityDashboardOptionsOutcomeCallable;
197         typedef std::future<GetDeliverabilityTestReportOutcome> GetDeliverabilityTestReportOutcomeCallable;
198         typedef std::future<GetDomainDeliverabilityCampaignOutcome> GetDomainDeliverabilityCampaignOutcomeCallable;
199         typedef std::future<GetDomainStatisticsReportOutcome> GetDomainStatisticsReportOutcomeCallable;
200         typedef std::future<GetEmailIdentityOutcome> GetEmailIdentityOutcomeCallable;
201         typedef std::future<ListConfigurationSetsOutcome> ListConfigurationSetsOutcomeCallable;
202         typedef std::future<ListDedicatedIpPoolsOutcome> ListDedicatedIpPoolsOutcomeCallable;
203         typedef std::future<ListDeliverabilityTestReportsOutcome> ListDeliverabilityTestReportsOutcomeCallable;
204         typedef std::future<ListDomainDeliverabilityCampaignsOutcome> ListDomainDeliverabilityCampaignsOutcomeCallable;
205         typedef std::future<ListEmailIdentitiesOutcome> ListEmailIdentitiesOutcomeCallable;
206         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
207         typedef std::future<PutAccountDedicatedIpWarmupAttributesOutcome> PutAccountDedicatedIpWarmupAttributesOutcomeCallable;
208         typedef std::future<PutAccountSendingAttributesOutcome> PutAccountSendingAttributesOutcomeCallable;
209         typedef std::future<PutConfigurationSetDeliveryOptionsOutcome> PutConfigurationSetDeliveryOptionsOutcomeCallable;
210         typedef std::future<PutConfigurationSetReputationOptionsOutcome> PutConfigurationSetReputationOptionsOutcomeCallable;
211         typedef std::future<PutConfigurationSetSendingOptionsOutcome> PutConfigurationSetSendingOptionsOutcomeCallable;
212         typedef std::future<PutConfigurationSetTrackingOptionsOutcome> PutConfigurationSetTrackingOptionsOutcomeCallable;
213         typedef std::future<PutDedicatedIpInPoolOutcome> PutDedicatedIpInPoolOutcomeCallable;
214         typedef std::future<PutDedicatedIpWarmupAttributesOutcome> PutDedicatedIpWarmupAttributesOutcomeCallable;
215         typedef std::future<PutDeliverabilityDashboardOptionOutcome> PutDeliverabilityDashboardOptionOutcomeCallable;
216         typedef std::future<PutEmailIdentityDkimAttributesOutcome> PutEmailIdentityDkimAttributesOutcomeCallable;
217         typedef std::future<PutEmailIdentityFeedbackAttributesOutcome> PutEmailIdentityFeedbackAttributesOutcomeCallable;
218         typedef std::future<PutEmailIdentityMailFromAttributesOutcome> PutEmailIdentityMailFromAttributesOutcomeCallable;
219         typedef std::future<SendEmailOutcome> SendEmailOutcomeCallable;
220         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
221         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
222         typedef std::future<UpdateConfigurationSetEventDestinationOutcome> UpdateConfigurationSetEventDestinationOutcomeCallable;
223 } // namespace Model
224 
225   class PinpointEmailClient;
226 
227     typedef std::function<void(const PinpointEmailClient*, const Model::CreateConfigurationSetRequest&, const Model::CreateConfigurationSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateConfigurationSetResponseReceivedHandler;
228     typedef std::function<void(const PinpointEmailClient*, const Model::CreateConfigurationSetEventDestinationRequest&, const Model::CreateConfigurationSetEventDestinationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateConfigurationSetEventDestinationResponseReceivedHandler;
229     typedef std::function<void(const PinpointEmailClient*, const Model::CreateDedicatedIpPoolRequest&, const Model::CreateDedicatedIpPoolOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDedicatedIpPoolResponseReceivedHandler;
230     typedef std::function<void(const PinpointEmailClient*, const Model::CreateDeliverabilityTestReportRequest&, const Model::CreateDeliverabilityTestReportOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDeliverabilityTestReportResponseReceivedHandler;
231     typedef std::function<void(const PinpointEmailClient*, const Model::CreateEmailIdentityRequest&, const Model::CreateEmailIdentityOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateEmailIdentityResponseReceivedHandler;
232     typedef std::function<void(const PinpointEmailClient*, const Model::DeleteConfigurationSetRequest&, const Model::DeleteConfigurationSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteConfigurationSetResponseReceivedHandler;
233     typedef std::function<void(const PinpointEmailClient*, const Model::DeleteConfigurationSetEventDestinationRequest&, const Model::DeleteConfigurationSetEventDestinationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteConfigurationSetEventDestinationResponseReceivedHandler;
234     typedef std::function<void(const PinpointEmailClient*, const Model::DeleteDedicatedIpPoolRequest&, const Model::DeleteDedicatedIpPoolOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDedicatedIpPoolResponseReceivedHandler;
235     typedef std::function<void(const PinpointEmailClient*, const Model::DeleteEmailIdentityRequest&, const Model::DeleteEmailIdentityOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteEmailIdentityResponseReceivedHandler;
236     typedef std::function<void(const PinpointEmailClient*, const Model::GetAccountRequest&, const Model::GetAccountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAccountResponseReceivedHandler;
237     typedef std::function<void(const PinpointEmailClient*, const Model::GetBlacklistReportsRequest&, const Model::GetBlacklistReportsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBlacklistReportsResponseReceivedHandler;
238     typedef std::function<void(const PinpointEmailClient*, const Model::GetConfigurationSetRequest&, const Model::GetConfigurationSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetConfigurationSetResponseReceivedHandler;
239     typedef std::function<void(const PinpointEmailClient*, const Model::GetConfigurationSetEventDestinationsRequest&, const Model::GetConfigurationSetEventDestinationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetConfigurationSetEventDestinationsResponseReceivedHandler;
240     typedef std::function<void(const PinpointEmailClient*, const Model::GetDedicatedIpRequest&, const Model::GetDedicatedIpOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDedicatedIpResponseReceivedHandler;
241     typedef std::function<void(const PinpointEmailClient*, const Model::GetDedicatedIpsRequest&, const Model::GetDedicatedIpsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDedicatedIpsResponseReceivedHandler;
242     typedef std::function<void(const PinpointEmailClient*, const Model::GetDeliverabilityDashboardOptionsRequest&, const Model::GetDeliverabilityDashboardOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDeliverabilityDashboardOptionsResponseReceivedHandler;
243     typedef std::function<void(const PinpointEmailClient*, const Model::GetDeliverabilityTestReportRequest&, const Model::GetDeliverabilityTestReportOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDeliverabilityTestReportResponseReceivedHandler;
244     typedef std::function<void(const PinpointEmailClient*, const Model::GetDomainDeliverabilityCampaignRequest&, const Model::GetDomainDeliverabilityCampaignOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDomainDeliverabilityCampaignResponseReceivedHandler;
245     typedef std::function<void(const PinpointEmailClient*, const Model::GetDomainStatisticsReportRequest&, const Model::GetDomainStatisticsReportOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDomainStatisticsReportResponseReceivedHandler;
246     typedef std::function<void(const PinpointEmailClient*, const Model::GetEmailIdentityRequest&, const Model::GetEmailIdentityOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetEmailIdentityResponseReceivedHandler;
247     typedef std::function<void(const PinpointEmailClient*, const Model::ListConfigurationSetsRequest&, const Model::ListConfigurationSetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListConfigurationSetsResponseReceivedHandler;
248     typedef std::function<void(const PinpointEmailClient*, const Model::ListDedicatedIpPoolsRequest&, const Model::ListDedicatedIpPoolsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDedicatedIpPoolsResponseReceivedHandler;
249     typedef std::function<void(const PinpointEmailClient*, const Model::ListDeliverabilityTestReportsRequest&, const Model::ListDeliverabilityTestReportsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDeliverabilityTestReportsResponseReceivedHandler;
250     typedef std::function<void(const PinpointEmailClient*, const Model::ListDomainDeliverabilityCampaignsRequest&, const Model::ListDomainDeliverabilityCampaignsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDomainDeliverabilityCampaignsResponseReceivedHandler;
251     typedef std::function<void(const PinpointEmailClient*, const Model::ListEmailIdentitiesRequest&, const Model::ListEmailIdentitiesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListEmailIdentitiesResponseReceivedHandler;
252     typedef std::function<void(const PinpointEmailClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
253     typedef std::function<void(const PinpointEmailClient*, const Model::PutAccountDedicatedIpWarmupAttributesRequest&, const Model::PutAccountDedicatedIpWarmupAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutAccountDedicatedIpWarmupAttributesResponseReceivedHandler;
254     typedef std::function<void(const PinpointEmailClient*, const Model::PutAccountSendingAttributesRequest&, const Model::PutAccountSendingAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutAccountSendingAttributesResponseReceivedHandler;
255     typedef std::function<void(const PinpointEmailClient*, const Model::PutConfigurationSetDeliveryOptionsRequest&, const Model::PutConfigurationSetDeliveryOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutConfigurationSetDeliveryOptionsResponseReceivedHandler;
256     typedef std::function<void(const PinpointEmailClient*, const Model::PutConfigurationSetReputationOptionsRequest&, const Model::PutConfigurationSetReputationOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutConfigurationSetReputationOptionsResponseReceivedHandler;
257     typedef std::function<void(const PinpointEmailClient*, const Model::PutConfigurationSetSendingOptionsRequest&, const Model::PutConfigurationSetSendingOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutConfigurationSetSendingOptionsResponseReceivedHandler;
258     typedef std::function<void(const PinpointEmailClient*, const Model::PutConfigurationSetTrackingOptionsRequest&, const Model::PutConfigurationSetTrackingOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutConfigurationSetTrackingOptionsResponseReceivedHandler;
259     typedef std::function<void(const PinpointEmailClient*, const Model::PutDedicatedIpInPoolRequest&, const Model::PutDedicatedIpInPoolOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutDedicatedIpInPoolResponseReceivedHandler;
260     typedef std::function<void(const PinpointEmailClient*, const Model::PutDedicatedIpWarmupAttributesRequest&, const Model::PutDedicatedIpWarmupAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutDedicatedIpWarmupAttributesResponseReceivedHandler;
261     typedef std::function<void(const PinpointEmailClient*, const Model::PutDeliverabilityDashboardOptionRequest&, const Model::PutDeliverabilityDashboardOptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutDeliverabilityDashboardOptionResponseReceivedHandler;
262     typedef std::function<void(const PinpointEmailClient*, const Model::PutEmailIdentityDkimAttributesRequest&, const Model::PutEmailIdentityDkimAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutEmailIdentityDkimAttributesResponseReceivedHandler;
263     typedef std::function<void(const PinpointEmailClient*, const Model::PutEmailIdentityFeedbackAttributesRequest&, const Model::PutEmailIdentityFeedbackAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutEmailIdentityFeedbackAttributesResponseReceivedHandler;
264     typedef std::function<void(const PinpointEmailClient*, const Model::PutEmailIdentityMailFromAttributesRequest&, const Model::PutEmailIdentityMailFromAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutEmailIdentityMailFromAttributesResponseReceivedHandler;
265     typedef std::function<void(const PinpointEmailClient*, const Model::SendEmailRequest&, const Model::SendEmailOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SendEmailResponseReceivedHandler;
266     typedef std::function<void(const PinpointEmailClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
267     typedef std::function<void(const PinpointEmailClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
268     typedef std::function<void(const PinpointEmailClient*, const Model::UpdateConfigurationSetEventDestinationRequest&, const Model::UpdateConfigurationSetEventDestinationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateConfigurationSetEventDestinationResponseReceivedHandler;
269 
270   /**
271    * <fullname>Amazon Pinpoint Email Service</fullname> <p>Welcome to the <i>Amazon
272    * Pinpoint Email API Reference</i>. This guide provides information about the
273    * Amazon Pinpoint Email API (version 1.0), including supported operations, data
274    * types, parameters, and schemas.</p> <p> <a
275    * href="https://aws.amazon.com/pinpoint">Amazon Pinpoint</a> is an AWS service
276    * that you can use to engage with your customers across multiple messaging
277    * channels. You can use Amazon Pinpoint to send email, SMS text messages, voice
278    * messages, and push notifications. The Amazon Pinpoint Email API provides
279    * programmatic access to options that are unique to the email channel and
280    * supplement the options provided by the Amazon Pinpoint API.</p> <p>If you're new
281    * to Amazon Pinpoint, you might find it helpful to also review the <a
282    * href="https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html">Amazon
283    * Pinpoint Developer Guide</a>. The <i>Amazon Pinpoint Developer Guide</i>
284    * provides tutorials, code samples, and procedures that demonstrate how to use
285    * Amazon Pinpoint features programmatically and how to integrate Amazon Pinpoint
286    * functionality into mobile apps and other types of applications. The guide also
287    * provides information about key topics such as Amazon Pinpoint integration with
288    * other AWS services and the limits that apply to using the service.</p> <p>The
289    * Amazon Pinpoint Email API is available in several AWS Regions and it provides an
290    * endpoint for each of these Regions. For a list of all the Regions and endpoints
291    * where the API is currently available, see <a
292    * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#pinpoint_region">AWS
293    * Service Endpoints</a> in the <i>Amazon Web Services General Reference</i>. To
294    * learn more about AWS Regions, see <a
295    * href="https://docs.aws.amazon.com/general/latest/gr/rande-manage.html">Managing
296    * AWS Regions</a> in the <i>Amazon Web Services General Reference</i>.</p> <p>In
297    * each Region, AWS maintains multiple Availability Zones. These Availability Zones
298    * are physically isolated from each other, but are united by private, low-latency,
299    * high-throughput, and highly redundant network connections. These Availability
300    * Zones enable us to provide very high levels of availability and redundancy,
301    * while also minimizing latency. To learn more about the number of Availability
302    * Zones that are available in each Region, see <a
303    * href="http://aws.amazon.com/about-aws/global-infrastructure/">AWS Global
304    * Infrastructure</a>.</p>
305    */
306   class AWS_PINPOINTEMAIL_API PinpointEmailClient : public Aws::Client::AWSJsonClient
307   {
308     public:
309       typedef Aws::Client::AWSJsonClient BASECLASS;
310 
311        /**
312         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
313         * is not specified, it will be initialized to default values.
314         */
315         PinpointEmailClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
316 
317        /**
318         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
319         * is not specified, it will be initialized to default values.
320         */
321         PinpointEmailClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
322 
323        /**
324         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
325         * the default http client factory will be used
326         */
327         PinpointEmailClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
328             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
329 
330         virtual ~PinpointEmailClient();
331 
332 
333         /**
334          * <p>Create a configuration set. <i>Configuration sets</i> are groups of rules
335          * that you can apply to the emails you send using Amazon Pinpoint. You apply a
336          * configuration set to an email by including a reference to the configuration set
337          * in the headers of the email. When you apply a configuration set to an email, all
338          * of the rules in that configuration set are applied to the email. </p><p><h3>See
339          * Also:</h3>   <a
340          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateConfigurationSet">AWS
341          * API Reference</a></p>
342          */
343         virtual Model::CreateConfigurationSetOutcome CreateConfigurationSet(const Model::CreateConfigurationSetRequest& request) const;
344 
345         /**
346          * <p>Create a configuration set. <i>Configuration sets</i> are groups of rules
347          * that you can apply to the emails you send using Amazon Pinpoint. You apply a
348          * configuration set to an email by including a reference to the configuration set
349          * in the headers of the email. When you apply a configuration set to an email, all
350          * of the rules in that configuration set are applied to the email. </p><p><h3>See
351          * Also:</h3>   <a
352          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateConfigurationSet">AWS
353          * API Reference</a></p>
354          *
355          * returns a future to the operation so that it can be executed in parallel to other requests.
356          */
357         virtual Model::CreateConfigurationSetOutcomeCallable CreateConfigurationSetCallable(const Model::CreateConfigurationSetRequest& request) const;
358 
359         /**
360          * <p>Create a configuration set. <i>Configuration sets</i> are groups of rules
361          * that you can apply to the emails you send using Amazon Pinpoint. You apply a
362          * configuration set to an email by including a reference to the configuration set
363          * in the headers of the email. When you apply a configuration set to an email, all
364          * of the rules in that configuration set are applied to the email. </p><p><h3>See
365          * Also:</h3>   <a
366          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateConfigurationSet">AWS
367          * API Reference</a></p>
368          *
369          * Queues the request into a thread executor and triggers associated callback when operation has finished.
370          */
371         virtual void CreateConfigurationSetAsync(const Model::CreateConfigurationSetRequest& request, const CreateConfigurationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
372 
373         /**
374          * <p>Create an event destination. In Amazon Pinpoint, <i>events</i> include
375          * message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event
376          * destinations</i> are places that you can send information about these events to.
377          * For example, you can send event data to Amazon SNS to receive notifications when
378          * you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose
379          * to stream data to Amazon S3 for long-term storage.</p> <p>A single configuration
380          * set can include more than one event destination.</p><p><h3>See Also:</h3>   <a
381          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateConfigurationSetEventDestination">AWS
382          * API Reference</a></p>
383          */
384         virtual Model::CreateConfigurationSetEventDestinationOutcome CreateConfigurationSetEventDestination(const Model::CreateConfigurationSetEventDestinationRequest& request) const;
385 
386         /**
387          * <p>Create an event destination. In Amazon Pinpoint, <i>events</i> include
388          * message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event
389          * destinations</i> are places that you can send information about these events to.
390          * For example, you can send event data to Amazon SNS to receive notifications when
391          * you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose
392          * to stream data to Amazon S3 for long-term storage.</p> <p>A single configuration
393          * set can include more than one event destination.</p><p><h3>See Also:</h3>   <a
394          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateConfigurationSetEventDestination">AWS
395          * API Reference</a></p>
396          *
397          * returns a future to the operation so that it can be executed in parallel to other requests.
398          */
399         virtual Model::CreateConfigurationSetEventDestinationOutcomeCallable CreateConfigurationSetEventDestinationCallable(const Model::CreateConfigurationSetEventDestinationRequest& request) const;
400 
401         /**
402          * <p>Create an event destination. In Amazon Pinpoint, <i>events</i> include
403          * message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event
404          * destinations</i> are places that you can send information about these events to.
405          * For example, you can send event data to Amazon SNS to receive notifications when
406          * you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose
407          * to stream data to Amazon S3 for long-term storage.</p> <p>A single configuration
408          * set can include more than one event destination.</p><p><h3>See Also:</h3>   <a
409          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateConfigurationSetEventDestination">AWS
410          * API Reference</a></p>
411          *
412          * Queues the request into a thread executor and triggers associated callback when operation has finished.
413          */
414         virtual void CreateConfigurationSetEventDestinationAsync(const Model::CreateConfigurationSetEventDestinationRequest& request, const CreateConfigurationSetEventDestinationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
415 
416         /**
417          * <p>Create a new pool of dedicated IP addresses. A pool can include one or more
418          * dedicated IP addresses that are associated with your Amazon Pinpoint account.
419          * You can associate a pool with a configuration set. When you send an email that
420          * uses that configuration set, Amazon Pinpoint sends it using only the IP
421          * addresses in the associated pool.</p><p><h3>See Also:</h3>   <a
422          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateDedicatedIpPool">AWS
423          * API Reference</a></p>
424          */
425         virtual Model::CreateDedicatedIpPoolOutcome CreateDedicatedIpPool(const Model::CreateDedicatedIpPoolRequest& request) const;
426 
427         /**
428          * <p>Create a new pool of dedicated IP addresses. A pool can include one or more
429          * dedicated IP addresses that are associated with your Amazon Pinpoint account.
430          * You can associate a pool with a configuration set. When you send an email that
431          * uses that configuration set, Amazon Pinpoint sends it using only the IP
432          * addresses in the associated pool.</p><p><h3>See Also:</h3>   <a
433          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateDedicatedIpPool">AWS
434          * API Reference</a></p>
435          *
436          * returns a future to the operation so that it can be executed in parallel to other requests.
437          */
438         virtual Model::CreateDedicatedIpPoolOutcomeCallable CreateDedicatedIpPoolCallable(const Model::CreateDedicatedIpPoolRequest& request) const;
439 
440         /**
441          * <p>Create a new pool of dedicated IP addresses. A pool can include one or more
442          * dedicated IP addresses that are associated with your Amazon Pinpoint account.
443          * You can associate a pool with a configuration set. When you send an email that
444          * uses that configuration set, Amazon Pinpoint sends it using only the IP
445          * addresses in the associated pool.</p><p><h3>See Also:</h3>   <a
446          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateDedicatedIpPool">AWS
447          * API Reference</a></p>
448          *
449          * Queues the request into a thread executor and triggers associated callback when operation has finished.
450          */
451         virtual void CreateDedicatedIpPoolAsync(const Model::CreateDedicatedIpPoolRequest& request, const CreateDedicatedIpPoolResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
452 
453         /**
454          * <p>Create a new predictive inbox placement test. Predictive inbox placement
455          * tests can help you predict how your messages will be handled by various email
456          * providers around the world. When you perform a predictive inbox placement test,
457          * you provide a sample message that contains the content that you plan to send to
458          * your customers. Amazon Pinpoint then sends that message to special email
459          * addresses spread across several major email providers. After about 24 hours, the
460          * test is complete, and you can use the <code>GetDeliverabilityTestReport</code>
461          * operation to view the results of the test.</p><p><h3>See Also:</h3>   <a
462          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateDeliverabilityTestReport">AWS
463          * API Reference</a></p>
464          */
465         virtual Model::CreateDeliverabilityTestReportOutcome CreateDeliverabilityTestReport(const Model::CreateDeliverabilityTestReportRequest& request) const;
466 
467         /**
468          * <p>Create a new predictive inbox placement test. Predictive inbox placement
469          * tests can help you predict how your messages will be handled by various email
470          * providers around the world. When you perform a predictive inbox placement test,
471          * you provide a sample message that contains the content that you plan to send to
472          * your customers. Amazon Pinpoint then sends that message to special email
473          * addresses spread across several major email providers. After about 24 hours, the
474          * test is complete, and you can use the <code>GetDeliverabilityTestReport</code>
475          * operation to view the results of the test.</p><p><h3>See Also:</h3>   <a
476          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateDeliverabilityTestReport">AWS
477          * API Reference</a></p>
478          *
479          * returns a future to the operation so that it can be executed in parallel to other requests.
480          */
481         virtual Model::CreateDeliverabilityTestReportOutcomeCallable CreateDeliverabilityTestReportCallable(const Model::CreateDeliverabilityTestReportRequest& request) const;
482 
483         /**
484          * <p>Create a new predictive inbox placement test. Predictive inbox placement
485          * tests can help you predict how your messages will be handled by various email
486          * providers around the world. When you perform a predictive inbox placement test,
487          * you provide a sample message that contains the content that you plan to send to
488          * your customers. Amazon Pinpoint then sends that message to special email
489          * addresses spread across several major email providers. After about 24 hours, the
490          * test is complete, and you can use the <code>GetDeliverabilityTestReport</code>
491          * operation to view the results of the test.</p><p><h3>See Also:</h3>   <a
492          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateDeliverabilityTestReport">AWS
493          * API Reference</a></p>
494          *
495          * Queues the request into a thread executor and triggers associated callback when operation has finished.
496          */
497         virtual void CreateDeliverabilityTestReportAsync(const Model::CreateDeliverabilityTestReportRequest& request, const CreateDeliverabilityTestReportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
498 
499         /**
500          * <p>Verifies an email identity for use with Amazon Pinpoint. In Amazon Pinpoint,
501          * an identity is an email address or domain that you use when you send email.
502          * Before you can use an identity to send email with Amazon Pinpoint, you first
503          * have to verify it. By verifying an address, you demonstrate that you're the
504          * owner of the address, and that you've given Amazon Pinpoint permission to send
505          * email from the address.</p> <p>When you verify an email address, Amazon Pinpoint
506          * sends an email to the address. Your email address is verified as soon as you
507          * follow the link in the verification email. </p> <p>When you verify a domain,
508          * this operation provides a set of DKIM tokens, which you can convert into CNAME
509          * tokens. You add these CNAME tokens to the DNS configuration for your domain.
510          * Your domain is verified when Amazon Pinpoint detects these records in the DNS
511          * configuration for your domain. It usually takes around 72 hours to complete the
512          * domain verification process.</p><p><h3>See Also:</h3>   <a
513          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateEmailIdentity">AWS
514          * API Reference</a></p>
515          */
516         virtual Model::CreateEmailIdentityOutcome CreateEmailIdentity(const Model::CreateEmailIdentityRequest& request) const;
517 
518         /**
519          * <p>Verifies an email identity for use with Amazon Pinpoint. In Amazon Pinpoint,
520          * an identity is an email address or domain that you use when you send email.
521          * Before you can use an identity to send email with Amazon Pinpoint, you first
522          * have to verify it. By verifying an address, you demonstrate that you're the
523          * owner of the address, and that you've given Amazon Pinpoint permission to send
524          * email from the address.</p> <p>When you verify an email address, Amazon Pinpoint
525          * sends an email to the address. Your email address is verified as soon as you
526          * follow the link in the verification email. </p> <p>When you verify a domain,
527          * this operation provides a set of DKIM tokens, which you can convert into CNAME
528          * tokens. You add these CNAME tokens to the DNS configuration for your domain.
529          * Your domain is verified when Amazon Pinpoint detects these records in the DNS
530          * configuration for your domain. It usually takes around 72 hours to complete the
531          * domain verification process.</p><p><h3>See Also:</h3>   <a
532          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateEmailIdentity">AWS
533          * API Reference</a></p>
534          *
535          * returns a future to the operation so that it can be executed in parallel to other requests.
536          */
537         virtual Model::CreateEmailIdentityOutcomeCallable CreateEmailIdentityCallable(const Model::CreateEmailIdentityRequest& request) const;
538 
539         /**
540          * <p>Verifies an email identity for use with Amazon Pinpoint. In Amazon Pinpoint,
541          * an identity is an email address or domain that you use when you send email.
542          * Before you can use an identity to send email with Amazon Pinpoint, you first
543          * have to verify it. By verifying an address, you demonstrate that you're the
544          * owner of the address, and that you've given Amazon Pinpoint permission to send
545          * email from the address.</p> <p>When you verify an email address, Amazon Pinpoint
546          * sends an email to the address. Your email address is verified as soon as you
547          * follow the link in the verification email. </p> <p>When you verify a domain,
548          * this operation provides a set of DKIM tokens, which you can convert into CNAME
549          * tokens. You add these CNAME tokens to the DNS configuration for your domain.
550          * Your domain is verified when Amazon Pinpoint detects these records in the DNS
551          * configuration for your domain. It usually takes around 72 hours to complete the
552          * domain verification process.</p><p><h3>See Also:</h3>   <a
553          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/CreateEmailIdentity">AWS
554          * API Reference</a></p>
555          *
556          * Queues the request into a thread executor and triggers associated callback when operation has finished.
557          */
558         virtual void CreateEmailIdentityAsync(const Model::CreateEmailIdentityRequest& request, const CreateEmailIdentityResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
559 
560         /**
561          * <p>Delete an existing configuration set.</p> <p>In Amazon Pinpoint,
562          * <i>configuration sets</i> are groups of rules that you can apply to the emails
563          * you send. You apply a configuration set to an email by including a reference to
564          * the configuration set in the headers of the email. When you apply a
565          * configuration set to an email, all of the rules in that configuration set are
566          * applied to the email.</p><p><h3>See Also:</h3>   <a
567          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteConfigurationSet">AWS
568          * API Reference</a></p>
569          */
570         virtual Model::DeleteConfigurationSetOutcome DeleteConfigurationSet(const Model::DeleteConfigurationSetRequest& request) const;
571 
572         /**
573          * <p>Delete an existing configuration set.</p> <p>In Amazon Pinpoint,
574          * <i>configuration sets</i> are groups of rules that you can apply to the emails
575          * you send. You apply a configuration set to an email by including a reference to
576          * the configuration set in the headers of the email. When you apply a
577          * configuration set to an email, all of the rules in that configuration set are
578          * applied to the email.</p><p><h3>See Also:</h3>   <a
579          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteConfigurationSet">AWS
580          * API Reference</a></p>
581          *
582          * returns a future to the operation so that it can be executed in parallel to other requests.
583          */
584         virtual Model::DeleteConfigurationSetOutcomeCallable DeleteConfigurationSetCallable(const Model::DeleteConfigurationSetRequest& request) const;
585 
586         /**
587          * <p>Delete an existing configuration set.</p> <p>In Amazon Pinpoint,
588          * <i>configuration sets</i> are groups of rules that you can apply to the emails
589          * you send. You apply a configuration set to an email by including a reference to
590          * the configuration set in the headers of the email. When you apply a
591          * configuration set to an email, all of the rules in that configuration set are
592          * applied to the email.</p><p><h3>See Also:</h3>   <a
593          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteConfigurationSet">AWS
594          * API Reference</a></p>
595          *
596          * Queues the request into a thread executor and triggers associated callback when operation has finished.
597          */
598         virtual void DeleteConfigurationSetAsync(const Model::DeleteConfigurationSetRequest& request, const DeleteConfigurationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
599 
600         /**
601          * <p>Delete an event destination.</p> <p>In Amazon Pinpoint, <i>events</i> include
602          * message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event
603          * destinations</i> are places that you can send information about these events to.
604          * For example, you can send event data to Amazon SNS to receive notifications when
605          * you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose
606          * to stream data to Amazon S3 for long-term storage.</p><p><h3>See Also:</h3>   <a
607          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteConfigurationSetEventDestination">AWS
608          * API Reference</a></p>
609          */
610         virtual Model::DeleteConfigurationSetEventDestinationOutcome DeleteConfigurationSetEventDestination(const Model::DeleteConfigurationSetEventDestinationRequest& request) const;
611 
612         /**
613          * <p>Delete an event destination.</p> <p>In Amazon Pinpoint, <i>events</i> include
614          * message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event
615          * destinations</i> are places that you can send information about these events to.
616          * For example, you can send event data to Amazon SNS to receive notifications when
617          * you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose
618          * to stream data to Amazon S3 for long-term storage.</p><p><h3>See Also:</h3>   <a
619          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteConfigurationSetEventDestination">AWS
620          * API Reference</a></p>
621          *
622          * returns a future to the operation so that it can be executed in parallel to other requests.
623          */
624         virtual Model::DeleteConfigurationSetEventDestinationOutcomeCallable DeleteConfigurationSetEventDestinationCallable(const Model::DeleteConfigurationSetEventDestinationRequest& request) const;
625 
626         /**
627          * <p>Delete an event destination.</p> <p>In Amazon Pinpoint, <i>events</i> include
628          * message sends, deliveries, opens, clicks, bounces, and complaints. <i>Event
629          * destinations</i> are places that you can send information about these events to.
630          * For example, you can send event data to Amazon SNS to receive notifications when
631          * you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose
632          * to stream data to Amazon S3 for long-term storage.</p><p><h3>See Also:</h3>   <a
633          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteConfigurationSetEventDestination">AWS
634          * API Reference</a></p>
635          *
636          * Queues the request into a thread executor and triggers associated callback when operation has finished.
637          */
638         virtual void DeleteConfigurationSetEventDestinationAsync(const Model::DeleteConfigurationSetEventDestinationRequest& request, const DeleteConfigurationSetEventDestinationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
639 
640         /**
641          * <p>Delete a dedicated IP pool.</p><p><h3>See Also:</h3>   <a
642          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteDedicatedIpPool">AWS
643          * API Reference</a></p>
644          */
645         virtual Model::DeleteDedicatedIpPoolOutcome DeleteDedicatedIpPool(const Model::DeleteDedicatedIpPoolRequest& request) const;
646 
647         /**
648          * <p>Delete a dedicated IP pool.</p><p><h3>See Also:</h3>   <a
649          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteDedicatedIpPool">AWS
650          * API Reference</a></p>
651          *
652          * returns a future to the operation so that it can be executed in parallel to other requests.
653          */
654         virtual Model::DeleteDedicatedIpPoolOutcomeCallable DeleteDedicatedIpPoolCallable(const Model::DeleteDedicatedIpPoolRequest& request) const;
655 
656         /**
657          * <p>Delete a dedicated IP pool.</p><p><h3>See Also:</h3>   <a
658          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteDedicatedIpPool">AWS
659          * API Reference</a></p>
660          *
661          * Queues the request into a thread executor and triggers associated callback when operation has finished.
662          */
663         virtual void DeleteDedicatedIpPoolAsync(const Model::DeleteDedicatedIpPoolRequest& request, const DeleteDedicatedIpPoolResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
664 
665         /**
666          * <p>Deletes an email identity that you previously verified for use with Amazon
667          * Pinpoint. An identity can be either an email address or a domain
668          * name.</p><p><h3>See Also:</h3>   <a
669          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteEmailIdentity">AWS
670          * API Reference</a></p>
671          */
672         virtual Model::DeleteEmailIdentityOutcome DeleteEmailIdentity(const Model::DeleteEmailIdentityRequest& request) const;
673 
674         /**
675          * <p>Deletes an email identity that you previously verified for use with Amazon
676          * Pinpoint. An identity can be either an email address or a domain
677          * name.</p><p><h3>See Also:</h3>   <a
678          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteEmailIdentity">AWS
679          * API Reference</a></p>
680          *
681          * returns a future to the operation so that it can be executed in parallel to other requests.
682          */
683         virtual Model::DeleteEmailIdentityOutcomeCallable DeleteEmailIdentityCallable(const Model::DeleteEmailIdentityRequest& request) const;
684 
685         /**
686          * <p>Deletes an email identity that you previously verified for use with Amazon
687          * Pinpoint. An identity can be either an email address or a domain
688          * name.</p><p><h3>See Also:</h3>   <a
689          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/DeleteEmailIdentity">AWS
690          * API Reference</a></p>
691          *
692          * Queues the request into a thread executor and triggers associated callback when operation has finished.
693          */
694         virtual void DeleteEmailIdentityAsync(const Model::DeleteEmailIdentityRequest& request, const DeleteEmailIdentityResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
695 
696         /**
697          * <p>Obtain information about the email-sending status and capabilities of your
698          * Amazon Pinpoint account in the current AWS Region.</p><p><h3>See Also:</h3>   <a
699          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetAccount">AWS
700          * API Reference</a></p>
701          */
702         virtual Model::GetAccountOutcome GetAccount(const Model::GetAccountRequest& request) const;
703 
704         /**
705          * <p>Obtain information about the email-sending status and capabilities of your
706          * Amazon Pinpoint account in the current AWS Region.</p><p><h3>See Also:</h3>   <a
707          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetAccount">AWS
708          * API Reference</a></p>
709          *
710          * returns a future to the operation so that it can be executed in parallel to other requests.
711          */
712         virtual Model::GetAccountOutcomeCallable GetAccountCallable(const Model::GetAccountRequest& request) const;
713 
714         /**
715          * <p>Obtain information about the email-sending status and capabilities of your
716          * Amazon Pinpoint account in the current AWS Region.</p><p><h3>See Also:</h3>   <a
717          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetAccount">AWS
718          * API Reference</a></p>
719          *
720          * Queues the request into a thread executor and triggers associated callback when operation has finished.
721          */
722         virtual void GetAccountAsync(const Model::GetAccountRequest& request, const GetAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
723 
724         /**
725          * <p>Retrieve a list of the blacklists that your dedicated IP addresses appear
726          * on.</p><p><h3>See Also:</h3>   <a
727          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetBlacklistReports">AWS
728          * API Reference</a></p>
729          */
730         virtual Model::GetBlacklistReportsOutcome GetBlacklistReports(const Model::GetBlacklistReportsRequest& request) const;
731 
732         /**
733          * <p>Retrieve a list of the blacklists that your dedicated IP addresses appear
734          * on.</p><p><h3>See Also:</h3>   <a
735          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetBlacklistReports">AWS
736          * API Reference</a></p>
737          *
738          * returns a future to the operation so that it can be executed in parallel to other requests.
739          */
740         virtual Model::GetBlacklistReportsOutcomeCallable GetBlacklistReportsCallable(const Model::GetBlacklistReportsRequest& request) const;
741 
742         /**
743          * <p>Retrieve a list of the blacklists that your dedicated IP addresses appear
744          * on.</p><p><h3>See Also:</h3>   <a
745          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetBlacklistReports">AWS
746          * API Reference</a></p>
747          *
748          * Queues the request into a thread executor and triggers associated callback when operation has finished.
749          */
750         virtual void GetBlacklistReportsAsync(const Model::GetBlacklistReportsRequest& request, const GetBlacklistReportsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
751 
752         /**
753          * <p>Get information about an existing configuration set, including the dedicated
754          * IP pool that it's associated with, whether or not it's enabled for sending
755          * email, and more.</p> <p>In Amazon Pinpoint, <i>configuration sets</i> are groups
756          * of rules that you can apply to the emails you send. You apply a configuration
757          * set to an email by including a reference to the configuration set in the headers
758          * of the email. When you apply a configuration set to an email, all of the rules
759          * in that configuration set are applied to the email.</p><p><h3>See Also:</h3>
760          * <a
761          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetConfigurationSet">AWS
762          * API Reference</a></p>
763          */
764         virtual Model::GetConfigurationSetOutcome GetConfigurationSet(const Model::GetConfigurationSetRequest& request) const;
765 
766         /**
767          * <p>Get information about an existing configuration set, including the dedicated
768          * IP pool that it's associated with, whether or not it's enabled for sending
769          * email, and more.</p> <p>In Amazon Pinpoint, <i>configuration sets</i> are groups
770          * of rules that you can apply to the emails you send. You apply a configuration
771          * set to an email by including a reference to the configuration set in the headers
772          * of the email. When you apply a configuration set to an email, all of the rules
773          * in that configuration set are applied to the email.</p><p><h3>See Also:</h3>
774          * <a
775          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetConfigurationSet">AWS
776          * API Reference</a></p>
777          *
778          * returns a future to the operation so that it can be executed in parallel to other requests.
779          */
780         virtual Model::GetConfigurationSetOutcomeCallable GetConfigurationSetCallable(const Model::GetConfigurationSetRequest& request) const;
781 
782         /**
783          * <p>Get information about an existing configuration set, including the dedicated
784          * IP pool that it's associated with, whether or not it's enabled for sending
785          * email, and more.</p> <p>In Amazon Pinpoint, <i>configuration sets</i> are groups
786          * of rules that you can apply to the emails you send. You apply a configuration
787          * set to an email by including a reference to the configuration set in the headers
788          * of the email. When you apply a configuration set to an email, all of the rules
789          * in that configuration set are applied to the email.</p><p><h3>See Also:</h3>
790          * <a
791          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetConfigurationSet">AWS
792          * API Reference</a></p>
793          *
794          * Queues the request into a thread executor and triggers associated callback when operation has finished.
795          */
796         virtual void GetConfigurationSetAsync(const Model::GetConfigurationSetRequest& request, const GetConfigurationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
797 
798         /**
799          * <p>Retrieve a list of event destinations that are associated with a
800          * configuration set.</p> <p>In Amazon Pinpoint, <i>events</i> include message
801          * sends, deliveries, opens, clicks, bounces, and complaints. <i>Event
802          * destinations</i> are places that you can send information about these events to.
803          * For example, you can send event data to Amazon SNS to receive notifications when
804          * you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose
805          * to stream data to Amazon S3 for long-term storage.</p><p><h3>See Also:</h3>   <a
806          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetConfigurationSetEventDestinations">AWS
807          * API Reference</a></p>
808          */
809         virtual Model::GetConfigurationSetEventDestinationsOutcome GetConfigurationSetEventDestinations(const Model::GetConfigurationSetEventDestinationsRequest& request) const;
810 
811         /**
812          * <p>Retrieve a list of event destinations that are associated with a
813          * configuration set.</p> <p>In Amazon Pinpoint, <i>events</i> include message
814          * sends, deliveries, opens, clicks, bounces, and complaints. <i>Event
815          * destinations</i> are places that you can send information about these events to.
816          * For example, you can send event data to Amazon SNS to receive notifications when
817          * you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose
818          * to stream data to Amazon S3 for long-term storage.</p><p><h3>See Also:</h3>   <a
819          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetConfigurationSetEventDestinations">AWS
820          * API Reference</a></p>
821          *
822          * returns a future to the operation so that it can be executed in parallel to other requests.
823          */
824         virtual Model::GetConfigurationSetEventDestinationsOutcomeCallable GetConfigurationSetEventDestinationsCallable(const Model::GetConfigurationSetEventDestinationsRequest& request) const;
825 
826         /**
827          * <p>Retrieve a list of event destinations that are associated with a
828          * configuration set.</p> <p>In Amazon Pinpoint, <i>events</i> include message
829          * sends, deliveries, opens, clicks, bounces, and complaints. <i>Event
830          * destinations</i> are places that you can send information about these events to.
831          * For example, you can send event data to Amazon SNS to receive notifications when
832          * you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose
833          * to stream data to Amazon S3 for long-term storage.</p><p><h3>See Also:</h3>   <a
834          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetConfigurationSetEventDestinations">AWS
835          * API Reference</a></p>
836          *
837          * Queues the request into a thread executor and triggers associated callback when operation has finished.
838          */
839         virtual void GetConfigurationSetEventDestinationsAsync(const Model::GetConfigurationSetEventDestinationsRequest& request, const GetConfigurationSetEventDestinationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
840 
841         /**
842          * <p>Get information about a dedicated IP address, including the name of the
843          * dedicated IP pool that it's associated with, as well information about the
844          * automatic warm-up process for the address.</p><p><h3>See Also:</h3>   <a
845          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDedicatedIp">AWS
846          * API Reference</a></p>
847          */
848         virtual Model::GetDedicatedIpOutcome GetDedicatedIp(const Model::GetDedicatedIpRequest& request) const;
849 
850         /**
851          * <p>Get information about a dedicated IP address, including the name of the
852          * dedicated IP pool that it's associated with, as well information about the
853          * automatic warm-up process for the address.</p><p><h3>See Also:</h3>   <a
854          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDedicatedIp">AWS
855          * API Reference</a></p>
856          *
857          * returns a future to the operation so that it can be executed in parallel to other requests.
858          */
859         virtual Model::GetDedicatedIpOutcomeCallable GetDedicatedIpCallable(const Model::GetDedicatedIpRequest& request) const;
860 
861         /**
862          * <p>Get information about a dedicated IP address, including the name of the
863          * dedicated IP pool that it's associated with, as well information about the
864          * automatic warm-up process for the address.</p><p><h3>See Also:</h3>   <a
865          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDedicatedIp">AWS
866          * API Reference</a></p>
867          *
868          * Queues the request into a thread executor and triggers associated callback when operation has finished.
869          */
870         virtual void GetDedicatedIpAsync(const Model::GetDedicatedIpRequest& request, const GetDedicatedIpResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
871 
872         /**
873          * <p>List the dedicated IP addresses that are associated with your Amazon Pinpoint
874          * account.</p><p><h3>See Also:</h3>   <a
875          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDedicatedIps">AWS
876          * API Reference</a></p>
877          */
878         virtual Model::GetDedicatedIpsOutcome GetDedicatedIps(const Model::GetDedicatedIpsRequest& request) const;
879 
880         /**
881          * <p>List the dedicated IP addresses that are associated with your Amazon Pinpoint
882          * account.</p><p><h3>See Also:</h3>   <a
883          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDedicatedIps">AWS
884          * API Reference</a></p>
885          *
886          * returns a future to the operation so that it can be executed in parallel to other requests.
887          */
888         virtual Model::GetDedicatedIpsOutcomeCallable GetDedicatedIpsCallable(const Model::GetDedicatedIpsRequest& request) const;
889 
890         /**
891          * <p>List the dedicated IP addresses that are associated with your Amazon Pinpoint
892          * account.</p><p><h3>See Also:</h3>   <a
893          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDedicatedIps">AWS
894          * API Reference</a></p>
895          *
896          * Queues the request into a thread executor and triggers associated callback when operation has finished.
897          */
898         virtual void GetDedicatedIpsAsync(const Model::GetDedicatedIpsRequest& request, const GetDedicatedIpsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
899 
900         /**
901          * <p>Retrieve information about the status of the Deliverability dashboard for
902          * your Amazon Pinpoint account. When the Deliverability dashboard is enabled, you
903          * gain access to reputation, deliverability, and other metrics for the domains
904          * that you use to send email using Amazon Pinpoint. You also gain the ability to
905          * perform predictive inbox placement tests.</p> <p>When you use the Deliverability
906          * dashboard, you pay a monthly subscription charge, in addition to any other fees
907          * that you accrue by using Amazon Pinpoint. For more information about the
908          * features and cost of a Deliverability dashboard subscription, see <a
909          * href="http://aws.amazon.com/pinpoint/pricing/">Amazon Pinpoint
910          * Pricing</a>.</p><p><h3>See Also:</h3>   <a
911          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDeliverabilityDashboardOptions">AWS
912          * API Reference</a></p>
913          */
914         virtual Model::GetDeliverabilityDashboardOptionsOutcome GetDeliverabilityDashboardOptions(const Model::GetDeliverabilityDashboardOptionsRequest& request) const;
915 
916         /**
917          * <p>Retrieve information about the status of the Deliverability dashboard for
918          * your Amazon Pinpoint account. When the Deliverability dashboard is enabled, you
919          * gain access to reputation, deliverability, and other metrics for the domains
920          * that you use to send email using Amazon Pinpoint. You also gain the ability to
921          * perform predictive inbox placement tests.</p> <p>When you use the Deliverability
922          * dashboard, you pay a monthly subscription charge, in addition to any other fees
923          * that you accrue by using Amazon Pinpoint. For more information about the
924          * features and cost of a Deliverability dashboard subscription, see <a
925          * href="http://aws.amazon.com/pinpoint/pricing/">Amazon Pinpoint
926          * Pricing</a>.</p><p><h3>See Also:</h3>   <a
927          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDeliverabilityDashboardOptions">AWS
928          * API Reference</a></p>
929          *
930          * returns a future to the operation so that it can be executed in parallel to other requests.
931          */
932         virtual Model::GetDeliverabilityDashboardOptionsOutcomeCallable GetDeliverabilityDashboardOptionsCallable(const Model::GetDeliverabilityDashboardOptionsRequest& request) const;
933 
934         /**
935          * <p>Retrieve information about the status of the Deliverability dashboard for
936          * your Amazon Pinpoint account. When the Deliverability dashboard is enabled, you
937          * gain access to reputation, deliverability, and other metrics for the domains
938          * that you use to send email using Amazon Pinpoint. You also gain the ability to
939          * perform predictive inbox placement tests.</p> <p>When you use the Deliverability
940          * dashboard, you pay a monthly subscription charge, in addition to any other fees
941          * that you accrue by using Amazon Pinpoint. For more information about the
942          * features and cost of a Deliverability dashboard subscription, see <a
943          * href="http://aws.amazon.com/pinpoint/pricing/">Amazon Pinpoint
944          * Pricing</a>.</p><p><h3>See Also:</h3>   <a
945          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDeliverabilityDashboardOptions">AWS
946          * API Reference</a></p>
947          *
948          * Queues the request into a thread executor and triggers associated callback when operation has finished.
949          */
950         virtual void GetDeliverabilityDashboardOptionsAsync(const Model::GetDeliverabilityDashboardOptionsRequest& request, const GetDeliverabilityDashboardOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
951 
952         /**
953          * <p>Retrieve the results of a predictive inbox placement test.</p><p><h3>See
954          * Also:</h3>   <a
955          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDeliverabilityTestReport">AWS
956          * API Reference</a></p>
957          */
958         virtual Model::GetDeliverabilityTestReportOutcome GetDeliverabilityTestReport(const Model::GetDeliverabilityTestReportRequest& request) const;
959 
960         /**
961          * <p>Retrieve the results of a predictive inbox placement test.</p><p><h3>See
962          * Also:</h3>   <a
963          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDeliverabilityTestReport">AWS
964          * API Reference</a></p>
965          *
966          * returns a future to the operation so that it can be executed in parallel to other requests.
967          */
968         virtual Model::GetDeliverabilityTestReportOutcomeCallable GetDeliverabilityTestReportCallable(const Model::GetDeliverabilityTestReportRequest& request) const;
969 
970         /**
971          * <p>Retrieve the results of a predictive inbox placement test.</p><p><h3>See
972          * Also:</h3>   <a
973          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDeliverabilityTestReport">AWS
974          * API Reference</a></p>
975          *
976          * Queues the request into a thread executor and triggers associated callback when operation has finished.
977          */
978         virtual void GetDeliverabilityTestReportAsync(const Model::GetDeliverabilityTestReportRequest& request, const GetDeliverabilityTestReportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
979 
980         /**
981          * <p>Retrieve all the deliverability data for a specific campaign. This data is
982          * available for a campaign only if the campaign sent email by using a domain that
983          * the Deliverability dashboard is enabled for
984          * (<code>PutDeliverabilityDashboardOption</code> operation).</p><p><h3>See
985          * Also:</h3>   <a
986          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDomainDeliverabilityCampaign">AWS
987          * API Reference</a></p>
988          */
989         virtual Model::GetDomainDeliverabilityCampaignOutcome GetDomainDeliverabilityCampaign(const Model::GetDomainDeliverabilityCampaignRequest& request) const;
990 
991         /**
992          * <p>Retrieve all the deliverability data for a specific campaign. This data is
993          * available for a campaign only if the campaign sent email by using a domain that
994          * the Deliverability dashboard is enabled for
995          * (<code>PutDeliverabilityDashboardOption</code> operation).</p><p><h3>See
996          * Also:</h3>   <a
997          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDomainDeliverabilityCampaign">AWS
998          * API Reference</a></p>
999          *
1000          * returns a future to the operation so that it can be executed in parallel to other requests.
1001          */
1002         virtual Model::GetDomainDeliverabilityCampaignOutcomeCallable GetDomainDeliverabilityCampaignCallable(const Model::GetDomainDeliverabilityCampaignRequest& request) const;
1003 
1004         /**
1005          * <p>Retrieve all the deliverability data for a specific campaign. This data is
1006          * available for a campaign only if the campaign sent email by using a domain that
1007          * the Deliverability dashboard is enabled for
1008          * (<code>PutDeliverabilityDashboardOption</code> operation).</p><p><h3>See
1009          * Also:</h3>   <a
1010          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDomainDeliverabilityCampaign">AWS
1011          * API Reference</a></p>
1012          *
1013          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1014          */
1015         virtual void GetDomainDeliverabilityCampaignAsync(const Model::GetDomainDeliverabilityCampaignRequest& request, const GetDomainDeliverabilityCampaignResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1016 
1017         /**
1018          * <p>Retrieve inbox placement and engagement rates for the domains that you use to
1019          * send email.</p><p><h3>See Also:</h3>   <a
1020          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDomainStatisticsReport">AWS
1021          * API Reference</a></p>
1022          */
1023         virtual Model::GetDomainStatisticsReportOutcome GetDomainStatisticsReport(const Model::GetDomainStatisticsReportRequest& request) const;
1024 
1025         /**
1026          * <p>Retrieve inbox placement and engagement rates for the domains that you use to
1027          * send email.</p><p><h3>See Also:</h3>   <a
1028          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDomainStatisticsReport">AWS
1029          * API Reference</a></p>
1030          *
1031          * returns a future to the operation so that it can be executed in parallel to other requests.
1032          */
1033         virtual Model::GetDomainStatisticsReportOutcomeCallable GetDomainStatisticsReportCallable(const Model::GetDomainStatisticsReportRequest& request) const;
1034 
1035         /**
1036          * <p>Retrieve inbox placement and engagement rates for the domains that you use to
1037          * send email.</p><p><h3>See Also:</h3>   <a
1038          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetDomainStatisticsReport">AWS
1039          * API Reference</a></p>
1040          *
1041          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1042          */
1043         virtual void GetDomainStatisticsReportAsync(const Model::GetDomainStatisticsReportRequest& request, const GetDomainStatisticsReportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1044 
1045         /**
1046          * <p>Provides information about a specific identity associated with your Amazon
1047          * Pinpoint account, including the identity's verification status, its DKIM
1048          * authentication status, and its custom Mail-From settings.</p><p><h3>See
1049          * Also:</h3>   <a
1050          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetEmailIdentity">AWS
1051          * API Reference</a></p>
1052          */
1053         virtual Model::GetEmailIdentityOutcome GetEmailIdentity(const Model::GetEmailIdentityRequest& request) const;
1054 
1055         /**
1056          * <p>Provides information about a specific identity associated with your Amazon
1057          * Pinpoint account, including the identity's verification status, its DKIM
1058          * authentication status, and its custom Mail-From settings.</p><p><h3>See
1059          * Also:</h3>   <a
1060          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetEmailIdentity">AWS
1061          * API Reference</a></p>
1062          *
1063          * returns a future to the operation so that it can be executed in parallel to other requests.
1064          */
1065         virtual Model::GetEmailIdentityOutcomeCallable GetEmailIdentityCallable(const Model::GetEmailIdentityRequest& request) const;
1066 
1067         /**
1068          * <p>Provides information about a specific identity associated with your Amazon
1069          * Pinpoint account, including the identity's verification status, its DKIM
1070          * authentication status, and its custom Mail-From settings.</p><p><h3>See
1071          * Also:</h3>   <a
1072          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/GetEmailIdentity">AWS
1073          * API Reference</a></p>
1074          *
1075          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1076          */
1077         virtual void GetEmailIdentityAsync(const Model::GetEmailIdentityRequest& request, const GetEmailIdentityResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1078 
1079         /**
1080          * <p>List all of the configuration sets associated with your Amazon Pinpoint
1081          * account in the current region.</p> <p>In Amazon Pinpoint, <i>configuration
1082          * sets</i> are groups of rules that you can apply to the emails you send. You
1083          * apply a configuration set to an email by including a reference to the
1084          * configuration set in the headers of the email. When you apply a configuration
1085          * set to an email, all of the rules in that configuration set are applied to the
1086          * email.</p><p><h3>See Also:</h3>   <a
1087          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListConfigurationSets">AWS
1088          * API Reference</a></p>
1089          */
1090         virtual Model::ListConfigurationSetsOutcome ListConfigurationSets(const Model::ListConfigurationSetsRequest& request) const;
1091 
1092         /**
1093          * <p>List all of the configuration sets associated with your Amazon Pinpoint
1094          * account in the current region.</p> <p>In Amazon Pinpoint, <i>configuration
1095          * sets</i> are groups of rules that you can apply to the emails you send. You
1096          * apply a configuration set to an email by including a reference to the
1097          * configuration set in the headers of the email. When you apply a configuration
1098          * set to an email, all of the rules in that configuration set are applied to the
1099          * email.</p><p><h3>See Also:</h3>   <a
1100          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListConfigurationSets">AWS
1101          * API Reference</a></p>
1102          *
1103          * returns a future to the operation so that it can be executed in parallel to other requests.
1104          */
1105         virtual Model::ListConfigurationSetsOutcomeCallable ListConfigurationSetsCallable(const Model::ListConfigurationSetsRequest& request) const;
1106 
1107         /**
1108          * <p>List all of the configuration sets associated with your Amazon Pinpoint
1109          * account in the current region.</p> <p>In Amazon Pinpoint, <i>configuration
1110          * sets</i> are groups of rules that you can apply to the emails you send. You
1111          * apply a configuration set to an email by including a reference to the
1112          * configuration set in the headers of the email. When you apply a configuration
1113          * set to an email, all of the rules in that configuration set are applied to the
1114          * email.</p><p><h3>See Also:</h3>   <a
1115          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListConfigurationSets">AWS
1116          * API Reference</a></p>
1117          *
1118          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1119          */
1120         virtual void ListConfigurationSetsAsync(const Model::ListConfigurationSetsRequest& request, const ListConfigurationSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1121 
1122         /**
1123          * <p>List all of the dedicated IP pools that exist in your Amazon Pinpoint account
1124          * in the current AWS Region.</p><p><h3>See Also:</h3>   <a
1125          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDedicatedIpPools">AWS
1126          * API Reference</a></p>
1127          */
1128         virtual Model::ListDedicatedIpPoolsOutcome ListDedicatedIpPools(const Model::ListDedicatedIpPoolsRequest& request) const;
1129 
1130         /**
1131          * <p>List all of the dedicated IP pools that exist in your Amazon Pinpoint account
1132          * in the current AWS Region.</p><p><h3>See Also:</h3>   <a
1133          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDedicatedIpPools">AWS
1134          * API Reference</a></p>
1135          *
1136          * returns a future to the operation so that it can be executed in parallel to other requests.
1137          */
1138         virtual Model::ListDedicatedIpPoolsOutcomeCallable ListDedicatedIpPoolsCallable(const Model::ListDedicatedIpPoolsRequest& request) const;
1139 
1140         /**
1141          * <p>List all of the dedicated IP pools that exist in your Amazon Pinpoint account
1142          * in the current AWS Region.</p><p><h3>See Also:</h3>   <a
1143          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDedicatedIpPools">AWS
1144          * API Reference</a></p>
1145          *
1146          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1147          */
1148         virtual void ListDedicatedIpPoolsAsync(const Model::ListDedicatedIpPoolsRequest& request, const ListDedicatedIpPoolsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1149 
1150         /**
1151          * <p>Show a list of the predictive inbox placement tests that you've performed,
1152          * regardless of their statuses. For predictive inbox placement tests that are
1153          * complete, you can use the <code>GetDeliverabilityTestReport</code> operation to
1154          * view the results.</p><p><h3>See Also:</h3>   <a
1155          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDeliverabilityTestReports">AWS
1156          * API Reference</a></p>
1157          */
1158         virtual Model::ListDeliverabilityTestReportsOutcome ListDeliverabilityTestReports(const Model::ListDeliverabilityTestReportsRequest& request) const;
1159 
1160         /**
1161          * <p>Show a list of the predictive inbox placement tests that you've performed,
1162          * regardless of their statuses. For predictive inbox placement tests that are
1163          * complete, you can use the <code>GetDeliverabilityTestReport</code> operation to
1164          * view the results.</p><p><h3>See Also:</h3>   <a
1165          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDeliverabilityTestReports">AWS
1166          * API Reference</a></p>
1167          *
1168          * returns a future to the operation so that it can be executed in parallel to other requests.
1169          */
1170         virtual Model::ListDeliverabilityTestReportsOutcomeCallable ListDeliverabilityTestReportsCallable(const Model::ListDeliverabilityTestReportsRequest& request) const;
1171 
1172         /**
1173          * <p>Show a list of the predictive inbox placement tests that you've performed,
1174          * regardless of their statuses. For predictive inbox placement tests that are
1175          * complete, you can use the <code>GetDeliverabilityTestReport</code> operation to
1176          * view the results.</p><p><h3>See Also:</h3>   <a
1177          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDeliverabilityTestReports">AWS
1178          * API Reference</a></p>
1179          *
1180          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1181          */
1182         virtual void ListDeliverabilityTestReportsAsync(const Model::ListDeliverabilityTestReportsRequest& request, const ListDeliverabilityTestReportsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1183 
1184         /**
1185          * <p>Retrieve deliverability data for all the campaigns that used a specific
1186          * domain to send email during a specified time range. This data is available for a
1187          * domain only if you enabled the Deliverability dashboard
1188          * (<code>PutDeliverabilityDashboardOption</code> operation) for the
1189          * domain.</p><p><h3>See Also:</h3>   <a
1190          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDomainDeliverabilityCampaigns">AWS
1191          * API Reference</a></p>
1192          */
1193         virtual Model::ListDomainDeliverabilityCampaignsOutcome ListDomainDeliverabilityCampaigns(const Model::ListDomainDeliverabilityCampaignsRequest& request) const;
1194 
1195         /**
1196          * <p>Retrieve deliverability data for all the campaigns that used a specific
1197          * domain to send email during a specified time range. This data is available for a
1198          * domain only if you enabled the Deliverability dashboard
1199          * (<code>PutDeliverabilityDashboardOption</code> operation) for the
1200          * domain.</p><p><h3>See Also:</h3>   <a
1201          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDomainDeliverabilityCampaigns">AWS
1202          * API Reference</a></p>
1203          *
1204          * returns a future to the operation so that it can be executed in parallel to other requests.
1205          */
1206         virtual Model::ListDomainDeliverabilityCampaignsOutcomeCallable ListDomainDeliverabilityCampaignsCallable(const Model::ListDomainDeliverabilityCampaignsRequest& request) const;
1207 
1208         /**
1209          * <p>Retrieve deliverability data for all the campaigns that used a specific
1210          * domain to send email during a specified time range. This data is available for a
1211          * domain only if you enabled the Deliverability dashboard
1212          * (<code>PutDeliverabilityDashboardOption</code> operation) for the
1213          * domain.</p><p><h3>See Also:</h3>   <a
1214          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListDomainDeliverabilityCampaigns">AWS
1215          * API Reference</a></p>
1216          *
1217          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1218          */
1219         virtual void ListDomainDeliverabilityCampaignsAsync(const Model::ListDomainDeliverabilityCampaignsRequest& request, const ListDomainDeliverabilityCampaignsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1220 
1221         /**
1222          * <p>Returns a list of all of the email identities that are associated with your
1223          * Amazon Pinpoint account. An identity can be either an email address or a domain.
1224          * This operation returns identities that are verified as well as those that
1225          * aren't.</p><p><h3>See Also:</h3>   <a
1226          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListEmailIdentities">AWS
1227          * API Reference</a></p>
1228          */
1229         virtual Model::ListEmailIdentitiesOutcome ListEmailIdentities(const Model::ListEmailIdentitiesRequest& request) const;
1230 
1231         /**
1232          * <p>Returns a list of all of the email identities that are associated with your
1233          * Amazon Pinpoint account. An identity can be either an email address or a domain.
1234          * This operation returns identities that are verified as well as those that
1235          * aren't.</p><p><h3>See Also:</h3>   <a
1236          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListEmailIdentities">AWS
1237          * API Reference</a></p>
1238          *
1239          * returns a future to the operation so that it can be executed in parallel to other requests.
1240          */
1241         virtual Model::ListEmailIdentitiesOutcomeCallable ListEmailIdentitiesCallable(const Model::ListEmailIdentitiesRequest& request) const;
1242 
1243         /**
1244          * <p>Returns a list of all of the email identities that are associated with your
1245          * Amazon Pinpoint account. An identity can be either an email address or a domain.
1246          * This operation returns identities that are verified as well as those that
1247          * aren't.</p><p><h3>See Also:</h3>   <a
1248          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListEmailIdentities">AWS
1249          * API Reference</a></p>
1250          *
1251          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1252          */
1253         virtual void ListEmailIdentitiesAsync(const Model::ListEmailIdentitiesRequest& request, const ListEmailIdentitiesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1254 
1255         /**
1256          * <p>Retrieve a list of the tags (keys and values) that are associated with a
1257          * specified resource. A <i>tag</i> is a label that you optionally define and
1258          * associate with a resource in Amazon Pinpoint. Each tag consists of a
1259          * required <i>tag key</i> and an optional associated <i>tag value</i>. A tag key
1260          * is a general label that acts as a category for more specific tag values. A tag
1261          * value acts as a descriptor within a tag key.</p><p><h3>See Also:</h3>   <a
1262          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListTagsForResource">AWS
1263          * API Reference</a></p>
1264          */
1265         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
1266 
1267         /**
1268          * <p>Retrieve a list of the tags (keys and values) that are associated with a
1269          * specified resource. A <i>tag</i> is a label that you optionally define and
1270          * associate with a resource in Amazon Pinpoint. Each tag consists of a
1271          * required <i>tag key</i> and an optional associated <i>tag value</i>. A tag key
1272          * is a general label that acts as a category for more specific tag values. A tag
1273          * value acts as a descriptor within a tag key.</p><p><h3>See Also:</h3>   <a
1274          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListTagsForResource">AWS
1275          * API Reference</a></p>
1276          *
1277          * returns a future to the operation so that it can be executed in parallel to other requests.
1278          */
1279         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
1280 
1281         /**
1282          * <p>Retrieve a list of the tags (keys and values) that are associated with a
1283          * specified resource. A <i>tag</i> is a label that you optionally define and
1284          * associate with a resource in Amazon Pinpoint. Each tag consists of a
1285          * required <i>tag key</i> and an optional associated <i>tag value</i>. A tag key
1286          * is a general label that acts as a category for more specific tag values. A tag
1287          * value acts as a descriptor within a tag key.</p><p><h3>See Also:</h3>   <a
1288          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/ListTagsForResource">AWS
1289          * API Reference</a></p>
1290          *
1291          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1292          */
1293         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1294 
1295         /**
1296          * <p>Enable or disable the automatic warm-up feature for dedicated IP
1297          * addresses.</p><p><h3>See Also:</h3>   <a
1298          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutAccountDedicatedIpWarmupAttributes">AWS
1299          * API Reference</a></p>
1300          */
1301         virtual Model::PutAccountDedicatedIpWarmupAttributesOutcome PutAccountDedicatedIpWarmupAttributes(const Model::PutAccountDedicatedIpWarmupAttributesRequest& request) const;
1302 
1303         /**
1304          * <p>Enable or disable the automatic warm-up feature for dedicated IP
1305          * addresses.</p><p><h3>See Also:</h3>   <a
1306          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutAccountDedicatedIpWarmupAttributes">AWS
1307          * API Reference</a></p>
1308          *
1309          * returns a future to the operation so that it can be executed in parallel to other requests.
1310          */
1311         virtual Model::PutAccountDedicatedIpWarmupAttributesOutcomeCallable PutAccountDedicatedIpWarmupAttributesCallable(const Model::PutAccountDedicatedIpWarmupAttributesRequest& request) const;
1312 
1313         /**
1314          * <p>Enable or disable the automatic warm-up feature for dedicated IP
1315          * addresses.</p><p><h3>See Also:</h3>   <a
1316          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutAccountDedicatedIpWarmupAttributes">AWS
1317          * API Reference</a></p>
1318          *
1319          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1320          */
1321         virtual void PutAccountDedicatedIpWarmupAttributesAsync(const Model::PutAccountDedicatedIpWarmupAttributesRequest& request, const PutAccountDedicatedIpWarmupAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1322 
1323         /**
1324          * <p>Enable or disable the ability of your account to send email.</p><p><h3>See
1325          * Also:</h3>   <a
1326          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutAccountSendingAttributes">AWS
1327          * API Reference</a></p>
1328          */
1329         virtual Model::PutAccountSendingAttributesOutcome PutAccountSendingAttributes(const Model::PutAccountSendingAttributesRequest& request) const;
1330 
1331         /**
1332          * <p>Enable or disable the ability of your account to send email.</p><p><h3>See
1333          * Also:</h3>   <a
1334          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutAccountSendingAttributes">AWS
1335          * API Reference</a></p>
1336          *
1337          * returns a future to the operation so that it can be executed in parallel to other requests.
1338          */
1339         virtual Model::PutAccountSendingAttributesOutcomeCallable PutAccountSendingAttributesCallable(const Model::PutAccountSendingAttributesRequest& request) const;
1340 
1341         /**
1342          * <p>Enable or disable the ability of your account to send email.</p><p><h3>See
1343          * Also:</h3>   <a
1344          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutAccountSendingAttributes">AWS
1345          * API Reference</a></p>
1346          *
1347          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1348          */
1349         virtual void PutAccountSendingAttributesAsync(const Model::PutAccountSendingAttributesRequest& request, const PutAccountSendingAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1350 
1351         /**
1352          * <p>Associate a configuration set with a dedicated IP pool. You can use dedicated
1353          * IP pools to create groups of dedicated IP addresses for sending specific types
1354          * of email.</p><p><h3>See Also:</h3>   <a
1355          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetDeliveryOptions">AWS
1356          * API Reference</a></p>
1357          */
1358         virtual Model::PutConfigurationSetDeliveryOptionsOutcome PutConfigurationSetDeliveryOptions(const Model::PutConfigurationSetDeliveryOptionsRequest& request) const;
1359 
1360         /**
1361          * <p>Associate a configuration set with a dedicated IP pool. You can use dedicated
1362          * IP pools to create groups of dedicated IP addresses for sending specific types
1363          * of email.</p><p><h3>See Also:</h3>   <a
1364          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetDeliveryOptions">AWS
1365          * API Reference</a></p>
1366          *
1367          * returns a future to the operation so that it can be executed in parallel to other requests.
1368          */
1369         virtual Model::PutConfigurationSetDeliveryOptionsOutcomeCallable PutConfigurationSetDeliveryOptionsCallable(const Model::PutConfigurationSetDeliveryOptionsRequest& request) const;
1370 
1371         /**
1372          * <p>Associate a configuration set with a dedicated IP pool. You can use dedicated
1373          * IP pools to create groups of dedicated IP addresses for sending specific types
1374          * of email.</p><p><h3>See Also:</h3>   <a
1375          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetDeliveryOptions">AWS
1376          * API Reference</a></p>
1377          *
1378          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1379          */
1380         virtual void PutConfigurationSetDeliveryOptionsAsync(const Model::PutConfigurationSetDeliveryOptionsRequest& request, const PutConfigurationSetDeliveryOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1381 
1382         /**
1383          * <p>Enable or disable collection of reputation metrics for emails that you send
1384          * using a particular configuration set in a specific AWS Region.</p><p><h3>See
1385          * Also:</h3>   <a
1386          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetReputationOptions">AWS
1387          * API Reference</a></p>
1388          */
1389         virtual Model::PutConfigurationSetReputationOptionsOutcome PutConfigurationSetReputationOptions(const Model::PutConfigurationSetReputationOptionsRequest& request) const;
1390 
1391         /**
1392          * <p>Enable or disable collection of reputation metrics for emails that you send
1393          * using a particular configuration set in a specific AWS Region.</p><p><h3>See
1394          * Also:</h3>   <a
1395          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetReputationOptions">AWS
1396          * API Reference</a></p>
1397          *
1398          * returns a future to the operation so that it can be executed in parallel to other requests.
1399          */
1400         virtual Model::PutConfigurationSetReputationOptionsOutcomeCallable PutConfigurationSetReputationOptionsCallable(const Model::PutConfigurationSetReputationOptionsRequest& request) const;
1401 
1402         /**
1403          * <p>Enable or disable collection of reputation metrics for emails that you send
1404          * using a particular configuration set in a specific AWS Region.</p><p><h3>See
1405          * Also:</h3>   <a
1406          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetReputationOptions">AWS
1407          * API Reference</a></p>
1408          *
1409          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1410          */
1411         virtual void PutConfigurationSetReputationOptionsAsync(const Model::PutConfigurationSetReputationOptionsRequest& request, const PutConfigurationSetReputationOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1412 
1413         /**
1414          * <p>Enable or disable email sending for messages that use a particular
1415          * configuration set in a specific AWS Region.</p><p><h3>See Also:</h3>   <a
1416          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetSendingOptions">AWS
1417          * API Reference</a></p>
1418          */
1419         virtual Model::PutConfigurationSetSendingOptionsOutcome PutConfigurationSetSendingOptions(const Model::PutConfigurationSetSendingOptionsRequest& request) const;
1420 
1421         /**
1422          * <p>Enable or disable email sending for messages that use a particular
1423          * configuration set in a specific AWS Region.</p><p><h3>See Also:</h3>   <a
1424          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetSendingOptions">AWS
1425          * API Reference</a></p>
1426          *
1427          * returns a future to the operation so that it can be executed in parallel to other requests.
1428          */
1429         virtual Model::PutConfigurationSetSendingOptionsOutcomeCallable PutConfigurationSetSendingOptionsCallable(const Model::PutConfigurationSetSendingOptionsRequest& request) const;
1430 
1431         /**
1432          * <p>Enable or disable email sending for messages that use a particular
1433          * configuration set in a specific AWS Region.</p><p><h3>See Also:</h3>   <a
1434          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetSendingOptions">AWS
1435          * API Reference</a></p>
1436          *
1437          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1438          */
1439         virtual void PutConfigurationSetSendingOptionsAsync(const Model::PutConfigurationSetSendingOptionsRequest& request, const PutConfigurationSetSendingOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1440 
1441         /**
1442          * <p>Specify a custom domain to use for open and click tracking elements in email
1443          * that you send using Amazon Pinpoint.</p><p><h3>See Also:</h3>   <a
1444          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetTrackingOptions">AWS
1445          * API Reference</a></p>
1446          */
1447         virtual Model::PutConfigurationSetTrackingOptionsOutcome PutConfigurationSetTrackingOptions(const Model::PutConfigurationSetTrackingOptionsRequest& request) const;
1448 
1449         /**
1450          * <p>Specify a custom domain to use for open and click tracking elements in email
1451          * that you send using Amazon Pinpoint.</p><p><h3>See Also:</h3>   <a
1452          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetTrackingOptions">AWS
1453          * API Reference</a></p>
1454          *
1455          * returns a future to the operation so that it can be executed in parallel to other requests.
1456          */
1457         virtual Model::PutConfigurationSetTrackingOptionsOutcomeCallable PutConfigurationSetTrackingOptionsCallable(const Model::PutConfigurationSetTrackingOptionsRequest& request) const;
1458 
1459         /**
1460          * <p>Specify a custom domain to use for open and click tracking elements in email
1461          * that you send using Amazon Pinpoint.</p><p><h3>See Also:</h3>   <a
1462          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutConfigurationSetTrackingOptions">AWS
1463          * API Reference</a></p>
1464          *
1465          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1466          */
1467         virtual void PutConfigurationSetTrackingOptionsAsync(const Model::PutConfigurationSetTrackingOptionsRequest& request, const PutConfigurationSetTrackingOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1468 
1469         /**
1470          * <p>Move a dedicated IP address to an existing dedicated IP pool.</p>
1471          * <p>The dedicated IP address that you specify must already exist, and must be
1472          * associated with your Amazon Pinpoint account. </p> <p>The dedicated IP pool you
1473          * specify must already exist. You can create a new pool by using the
1474          * <code>CreateDedicatedIpPool</code> operation.</p> <p><h3>See Also:</h3>
1475          * <a
1476          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDedicatedIpInPool">AWS
1477          * API Reference</a></p>
1478          */
1479         virtual Model::PutDedicatedIpInPoolOutcome PutDedicatedIpInPool(const Model::PutDedicatedIpInPoolRequest& request) const;
1480 
1481         /**
1482          * <p>Move a dedicated IP address to an existing dedicated IP pool.</p>
1483          * <p>The dedicated IP address that you specify must already exist, and must be
1484          * associated with your Amazon Pinpoint account. </p> <p>The dedicated IP pool you
1485          * specify must already exist. You can create a new pool by using the
1486          * <code>CreateDedicatedIpPool</code> operation.</p> <p><h3>See Also:</h3>
1487          * <a
1488          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDedicatedIpInPool">AWS
1489          * API Reference</a></p>
1490          *
1491          * returns a future to the operation so that it can be executed in parallel to other requests.
1492          */
1493         virtual Model::PutDedicatedIpInPoolOutcomeCallable PutDedicatedIpInPoolCallable(const Model::PutDedicatedIpInPoolRequest& request) const;
1494 
1495         /**
1496          * <p>Move a dedicated IP address to an existing dedicated IP pool.</p>
1497          * <p>The dedicated IP address that you specify must already exist, and must be
1498          * associated with your Amazon Pinpoint account. </p> <p>The dedicated IP pool you
1499          * specify must already exist. You can create a new pool by using the
1500          * <code>CreateDedicatedIpPool</code> operation.</p> <p><h3>See Also:</h3>
1501          * <a
1502          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDedicatedIpInPool">AWS
1503          * API Reference</a></p>
1504          *
1505          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1506          */
1507         virtual void PutDedicatedIpInPoolAsync(const Model::PutDedicatedIpInPoolRequest& request, const PutDedicatedIpInPoolResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1508 
1509         /**
1510          * <p/><p><h3>See Also:</h3>   <a
1511          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDedicatedIpWarmupAttributes">AWS
1512          * API Reference</a></p>
1513          */
1514         virtual Model::PutDedicatedIpWarmupAttributesOutcome PutDedicatedIpWarmupAttributes(const Model::PutDedicatedIpWarmupAttributesRequest& request) const;
1515 
1516         /**
1517          * <p/><p><h3>See Also:</h3>   <a
1518          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDedicatedIpWarmupAttributes">AWS
1519          * API Reference</a></p>
1520          *
1521          * returns a future to the operation so that it can be executed in parallel to other requests.
1522          */
1523         virtual Model::PutDedicatedIpWarmupAttributesOutcomeCallable PutDedicatedIpWarmupAttributesCallable(const Model::PutDedicatedIpWarmupAttributesRequest& request) const;
1524 
1525         /**
1526          * <p/><p><h3>See Also:</h3>   <a
1527          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDedicatedIpWarmupAttributes">AWS
1528          * API Reference</a></p>
1529          *
1530          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1531          */
1532         virtual void PutDedicatedIpWarmupAttributesAsync(const Model::PutDedicatedIpWarmupAttributesRequest& request, const PutDedicatedIpWarmupAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1533 
1534         /**
1535          * <p>Enable or disable the Deliverability dashboard for your Amazon Pinpoint
1536          * account. When you enable the Deliverability dashboard, you gain access to
1537          * reputation, deliverability, and other metrics for the domains that you use to
1538          * send email using Amazon Pinpoint. You also gain the ability to perform
1539          * predictive inbox placement tests.</p> <p>When you use the Deliverability
1540          * dashboard, you pay a monthly subscription charge, in addition to any other fees
1541          * that you accrue by using Amazon Pinpoint. For more information about the
1542          * features and cost of a Deliverability dashboard subscription, see <a
1543          * href="http://aws.amazon.com/pinpoint/pricing/">Amazon Pinpoint
1544          * Pricing</a>.</p><p><h3>See Also:</h3>   <a
1545          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDeliverabilityDashboardOption">AWS
1546          * API Reference</a></p>
1547          */
1548         virtual Model::PutDeliverabilityDashboardOptionOutcome PutDeliverabilityDashboardOption(const Model::PutDeliverabilityDashboardOptionRequest& request) const;
1549 
1550         /**
1551          * <p>Enable or disable the Deliverability dashboard for your Amazon Pinpoint
1552          * account. When you enable the Deliverability dashboard, you gain access to
1553          * reputation, deliverability, and other metrics for the domains that you use to
1554          * send email using Amazon Pinpoint. You also gain the ability to perform
1555          * predictive inbox placement tests.</p> <p>When you use the Deliverability
1556          * dashboard, you pay a monthly subscription charge, in addition to any other fees
1557          * that you accrue by using Amazon Pinpoint. For more information about the
1558          * features and cost of a Deliverability dashboard subscription, see <a
1559          * href="http://aws.amazon.com/pinpoint/pricing/">Amazon Pinpoint
1560          * Pricing</a>.</p><p><h3>See Also:</h3>   <a
1561          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDeliverabilityDashboardOption">AWS
1562          * API Reference</a></p>
1563          *
1564          * returns a future to the operation so that it can be executed in parallel to other requests.
1565          */
1566         virtual Model::PutDeliverabilityDashboardOptionOutcomeCallable PutDeliverabilityDashboardOptionCallable(const Model::PutDeliverabilityDashboardOptionRequest& request) const;
1567 
1568         /**
1569          * <p>Enable or disable the Deliverability dashboard for your Amazon Pinpoint
1570          * account. When you enable the Deliverability dashboard, you gain access to
1571          * reputation, deliverability, and other metrics for the domains that you use to
1572          * send email using Amazon Pinpoint. You also gain the ability to perform
1573          * predictive inbox placement tests.</p> <p>When you use the Deliverability
1574          * dashboard, you pay a monthly subscription charge, in addition to any other fees
1575          * that you accrue by using Amazon Pinpoint. For more information about the
1576          * features and cost of a Deliverability dashboard subscription, see <a
1577          * href="http://aws.amazon.com/pinpoint/pricing/">Amazon Pinpoint
1578          * Pricing</a>.</p><p><h3>See Also:</h3>   <a
1579          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutDeliverabilityDashboardOption">AWS
1580          * API Reference</a></p>
1581          *
1582          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1583          */
1584         virtual void PutDeliverabilityDashboardOptionAsync(const Model::PutDeliverabilityDashboardOptionRequest& request, const PutDeliverabilityDashboardOptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1585 
1586         /**
1587          * <p>Used to enable or disable DKIM authentication for an email
1588          * identity.</p><p><h3>See Also:</h3>   <a
1589          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityDkimAttributes">AWS
1590          * API Reference</a></p>
1591          */
1592         virtual Model::PutEmailIdentityDkimAttributesOutcome PutEmailIdentityDkimAttributes(const Model::PutEmailIdentityDkimAttributesRequest& request) const;
1593 
1594         /**
1595          * <p>Used to enable or disable DKIM authentication for an email
1596          * identity.</p><p><h3>See Also:</h3>   <a
1597          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityDkimAttributes">AWS
1598          * API Reference</a></p>
1599          *
1600          * returns a future to the operation so that it can be executed in parallel to other requests.
1601          */
1602         virtual Model::PutEmailIdentityDkimAttributesOutcomeCallable PutEmailIdentityDkimAttributesCallable(const Model::PutEmailIdentityDkimAttributesRequest& request) const;
1603 
1604         /**
1605          * <p>Used to enable or disable DKIM authentication for an email
1606          * identity.</p><p><h3>See Also:</h3>   <a
1607          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityDkimAttributes">AWS
1608          * API Reference</a></p>
1609          *
1610          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1611          */
1612         virtual void PutEmailIdentityDkimAttributesAsync(const Model::PutEmailIdentityDkimAttributesRequest& request, const PutEmailIdentityDkimAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1613 
1614         /**
1615          * <p>Used to enable or disable feedback forwarding for an identity. This setting
1616          * determines what happens when an identity is used to send an email that results
1617          * in a bounce or complaint event.</p> <p>When you enable feedback forwarding,
1618          * Amazon Pinpoint sends you email notifications when bounce or complaint events
1619          * occur. Amazon Pinpoint sends this notification to the address that you specified
1620          * in the Return-Path header of the original email.</p> <p>When you disable
1621          * feedback forwarding, Amazon Pinpoint sends notifications through other
1622          * mechanisms, such as by notifying an Amazon SNS topic. You're required to have a
1623          * method of tracking bounces and complaints. If you haven't set up another
1624          * mechanism for receiving bounce or complaint notifications, Amazon Pinpoint sends
1625          * an email notification when these events occur (even if this setting is
1626          * disabled).</p><p><h3>See Also:</h3>   <a
1627          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityFeedbackAttributes">AWS
1628          * API Reference</a></p>
1629          */
1630         virtual Model::PutEmailIdentityFeedbackAttributesOutcome PutEmailIdentityFeedbackAttributes(const Model::PutEmailIdentityFeedbackAttributesRequest& request) const;
1631 
1632         /**
1633          * <p>Used to enable or disable feedback forwarding for an identity. This setting
1634          * determines what happens when an identity is used to send an email that results
1635          * in a bounce or complaint event.</p> <p>When you enable feedback forwarding,
1636          * Amazon Pinpoint sends you email notifications when bounce or complaint events
1637          * occur. Amazon Pinpoint sends this notification to the address that you specified
1638          * in the Return-Path header of the original email.</p> <p>When you disable
1639          * feedback forwarding, Amazon Pinpoint sends notifications through other
1640          * mechanisms, such as by notifying an Amazon SNS topic. You're required to have a
1641          * method of tracking bounces and complaints. If you haven't set up another
1642          * mechanism for receiving bounce or complaint notifications, Amazon Pinpoint sends
1643          * an email notification when these events occur (even if this setting is
1644          * disabled).</p><p><h3>See Also:</h3>   <a
1645          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityFeedbackAttributes">AWS
1646          * API Reference</a></p>
1647          *
1648          * returns a future to the operation so that it can be executed in parallel to other requests.
1649          */
1650         virtual Model::PutEmailIdentityFeedbackAttributesOutcomeCallable PutEmailIdentityFeedbackAttributesCallable(const Model::PutEmailIdentityFeedbackAttributesRequest& request) const;
1651 
1652         /**
1653          * <p>Used to enable or disable feedback forwarding for an identity. This setting
1654          * determines what happens when an identity is used to send an email that results
1655          * in a bounce or complaint event.</p> <p>When you enable feedback forwarding,
1656          * Amazon Pinpoint sends you email notifications when bounce or complaint events
1657          * occur. Amazon Pinpoint sends this notification to the address that you specified
1658          * in the Return-Path header of the original email.</p> <p>When you disable
1659          * feedback forwarding, Amazon Pinpoint sends notifications through other
1660          * mechanisms, such as by notifying an Amazon SNS topic. You're required to have a
1661          * method of tracking bounces and complaints. If you haven't set up another
1662          * mechanism for receiving bounce or complaint notifications, Amazon Pinpoint sends
1663          * an email notification when these events occur (even if this setting is
1664          * disabled).</p><p><h3>See Also:</h3>   <a
1665          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityFeedbackAttributes">AWS
1666          * API Reference</a></p>
1667          *
1668          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1669          */
1670         virtual void PutEmailIdentityFeedbackAttributesAsync(const Model::PutEmailIdentityFeedbackAttributesRequest& request, const PutEmailIdentityFeedbackAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1671 
1672         /**
1673          * <p>Used to enable or disable the custom Mail-From domain configuration for an
1674          * email identity.</p><p><h3>See Also:</h3>   <a
1675          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityMailFromAttributes">AWS
1676          * API Reference</a></p>
1677          */
1678         virtual Model::PutEmailIdentityMailFromAttributesOutcome PutEmailIdentityMailFromAttributes(const Model::PutEmailIdentityMailFromAttributesRequest& request) const;
1679 
1680         /**
1681          * <p>Used to enable or disable the custom Mail-From domain configuration for an
1682          * email identity.</p><p><h3>See Also:</h3>   <a
1683          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityMailFromAttributes">AWS
1684          * API Reference</a></p>
1685          *
1686          * returns a future to the operation so that it can be executed in parallel to other requests.
1687          */
1688         virtual Model::PutEmailIdentityMailFromAttributesOutcomeCallable PutEmailIdentityMailFromAttributesCallable(const Model::PutEmailIdentityMailFromAttributesRequest& request) const;
1689 
1690         /**
1691          * <p>Used to enable or disable the custom Mail-From domain configuration for an
1692          * email identity.</p><p><h3>See Also:</h3>   <a
1693          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/PutEmailIdentityMailFromAttributes">AWS
1694          * API Reference</a></p>
1695          *
1696          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1697          */
1698         virtual void PutEmailIdentityMailFromAttributesAsync(const Model::PutEmailIdentityMailFromAttributesRequest& request, const PutEmailIdentityMailFromAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1699 
1700         /**
1701          * <p>Sends an email message. You can use the Amazon Pinpoint Email API to send two
1702          * types of messages:</p> <ul> <li> <p> <b>Simple</b> – A standard email message.
1703          * When you create this type of message, you specify the sender, the recipient, and
1704          * the message body, and Amazon Pinpoint assembles the message for you.</p> </li>
1705          * <li> <p> <b>Raw</b> – A raw, MIME-formatted email message. When you send this
1706          * type of email, you have to specify all of the message headers, as well as the
1707          * message body. You can use this message type to send messages that contain
1708          * attachments. The message that you specify has to be a valid MIME message.</p>
1709          * </li> </ul><p><h3>See Also:</h3>   <a
1710          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/SendEmail">AWS
1711          * API Reference</a></p>
1712          */
1713         virtual Model::SendEmailOutcome SendEmail(const Model::SendEmailRequest& request) const;
1714 
1715         /**
1716          * <p>Sends an email message. You can use the Amazon Pinpoint Email API to send two
1717          * types of messages:</p> <ul> <li> <p> <b>Simple</b> – A standard email message.
1718          * When you create this type of message, you specify the sender, the recipient, and
1719          * the message body, and Amazon Pinpoint assembles the message for you.</p> </li>
1720          * <li> <p> <b>Raw</b> – A raw, MIME-formatted email message. When you send this
1721          * type of email, you have to specify all of the message headers, as well as the
1722          * message body. You can use this message type to send messages that contain
1723          * attachments. The message that you specify has to be a valid MIME message.</p>
1724          * </li> </ul><p><h3>See Also:</h3>   <a
1725          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/SendEmail">AWS
1726          * API Reference</a></p>
1727          *
1728          * returns a future to the operation so that it can be executed in parallel to other requests.
1729          */
1730         virtual Model::SendEmailOutcomeCallable SendEmailCallable(const Model::SendEmailRequest& request) const;
1731 
1732         /**
1733          * <p>Sends an email message. You can use the Amazon Pinpoint Email API to send two
1734          * types of messages:</p> <ul> <li> <p> <b>Simple</b> – A standard email message.
1735          * When you create this type of message, you specify the sender, the recipient, and
1736          * the message body, and Amazon Pinpoint assembles the message for you.</p> </li>
1737          * <li> <p> <b>Raw</b> – A raw, MIME-formatted email message. When you send this
1738          * type of email, you have to specify all of the message headers, as well as the
1739          * message body. You can use this message type to send messages that contain
1740          * attachments. The message that you specify has to be a valid MIME message.</p>
1741          * </li> </ul><p><h3>See Also:</h3>   <a
1742          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/SendEmail">AWS
1743          * API Reference</a></p>
1744          *
1745          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1746          */
1747         virtual void SendEmailAsync(const Model::SendEmailRequest& request, const SendEmailResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1748 
1749         /**
1750          * <p>Add one or more tags (keys and values) to a specified resource. A
1751          * <i>tag</i> is a label that you optionally define and associate with a resource
1752          * in Amazon Pinpoint. Tags can help you categorize and manage resources in
1753          * different ways, such as by purpose, owner, environment, or other criteria. A
1754          * resource can have as many as 50 tags.</p> <p>Each tag consists of a
1755          * required <i>tag key</i> and an associated <i>tag value</i>, both of which you
1756          * define. A tag key is a general label that acts as a category for more specific
1757          * tag values. A tag value acts as a descriptor within a tag key.</p><p><h3>See
1758          * Also:</h3>   <a
1759          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/TagResource">AWS
1760          * API Reference</a></p>
1761          */
1762         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
1763 
1764         /**
1765          * <p>Add one or more tags (keys and values) to a specified resource. A
1766          * <i>tag</i> is a label that you optionally define and associate with a resource
1767          * in Amazon Pinpoint. Tags can help you categorize and manage resources in
1768          * different ways, such as by purpose, owner, environment, or other criteria. A
1769          * resource can have as many as 50 tags.</p> <p>Each tag consists of a
1770          * required <i>tag key</i> and an associated <i>tag value</i>, both of which you
1771          * define. A tag key is a general label that acts as a category for more specific
1772          * tag values. A tag value acts as a descriptor within a tag key.</p><p><h3>See
1773          * Also:</h3>   <a
1774          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/TagResource">AWS
1775          * API Reference</a></p>
1776          *
1777          * returns a future to the operation so that it can be executed in parallel to other requests.
1778          */
1779         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
1780 
1781         /**
1782          * <p>Add one or more tags (keys and values) to a specified resource. A
1783          * <i>tag</i> is a label that you optionally define and associate with a resource
1784          * in Amazon Pinpoint. Tags can help you categorize and manage resources in
1785          * different ways, such as by purpose, owner, environment, or other criteria. A
1786          * resource can have as many as 50 tags.</p> <p>Each tag consists of a
1787          * required <i>tag key</i> and an associated <i>tag value</i>, both of which you
1788          * define. A tag key is a general label that acts as a category for more specific
1789          * tag values. A tag value acts as a descriptor within a tag key.</p><p><h3>See
1790          * Also:</h3>   <a
1791          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/TagResource">AWS
1792          * API Reference</a></p>
1793          *
1794          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1795          */
1796         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1797 
1798         /**
1799          * <p>Remove one or more tags (keys and values) from a specified
1800          * resource.</p><p><h3>See Also:</h3>   <a
1801          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/UntagResource">AWS
1802          * API Reference</a></p>
1803          */
1804         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
1805 
1806         /**
1807          * <p>Remove one or more tags (keys and values) from a specified
1808          * resource.</p><p><h3>See Also:</h3>   <a
1809          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/UntagResource">AWS
1810          * API Reference</a></p>
1811          *
1812          * returns a future to the operation so that it can be executed in parallel to other requests.
1813          */
1814         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
1815 
1816         /**
1817          * <p>Remove one or more tags (keys and values) from a specified
1818          * resource.</p><p><h3>See Also:</h3>   <a
1819          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/UntagResource">AWS
1820          * API Reference</a></p>
1821          *
1822          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1823          */
1824         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1825 
1826         /**
1827          * <p>Update the configuration of an event destination for a configuration set.</p>
1828          * <p>In Amazon Pinpoint, <i>events</i> include message sends, deliveries, opens,
1829          * clicks, bounces, and complaints. <i>Event destinations</i> are places that you
1830          * can send information about these events to. For example, you can send event data
1831          * to Amazon SNS to receive notifications when you receive bounces or complaints,
1832          * or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for
1833          * long-term storage.</p><p><h3>See Also:</h3>   <a
1834          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/UpdateConfigurationSetEventDestination">AWS
1835          * API Reference</a></p>
1836          */
1837         virtual Model::UpdateConfigurationSetEventDestinationOutcome UpdateConfigurationSetEventDestination(const Model::UpdateConfigurationSetEventDestinationRequest& request) const;
1838 
1839         /**
1840          * <p>Update the configuration of an event destination for a configuration set.</p>
1841          * <p>In Amazon Pinpoint, <i>events</i> include message sends, deliveries, opens,
1842          * clicks, bounces, and complaints. <i>Event destinations</i> are places that you
1843          * can send information about these events to. For example, you can send event data
1844          * to Amazon SNS to receive notifications when you receive bounces or complaints,
1845          * or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for
1846          * long-term storage.</p><p><h3>See Also:</h3>   <a
1847          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/UpdateConfigurationSetEventDestination">AWS
1848          * API Reference</a></p>
1849          *
1850          * returns a future to the operation so that it can be executed in parallel to other requests.
1851          */
1852         virtual Model::UpdateConfigurationSetEventDestinationOutcomeCallable UpdateConfigurationSetEventDestinationCallable(const Model::UpdateConfigurationSetEventDestinationRequest& request) const;
1853 
1854         /**
1855          * <p>Update the configuration of an event destination for a configuration set.</p>
1856          * <p>In Amazon Pinpoint, <i>events</i> include message sends, deliveries, opens,
1857          * clicks, bounces, and complaints. <i>Event destinations</i> are places that you
1858          * can send information about these events to. For example, you can send event data
1859          * to Amazon SNS to receive notifications when you receive bounces or complaints,
1860          * or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for
1861          * long-term storage.</p><p><h3>See Also:</h3>   <a
1862          * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/UpdateConfigurationSetEventDestination">AWS
1863          * API Reference</a></p>
1864          *
1865          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1866          */
1867         virtual void UpdateConfigurationSetEventDestinationAsync(const Model::UpdateConfigurationSetEventDestinationRequest& request, const UpdateConfigurationSetEventDestinationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1868 
1869 
1870       void OverrideEndpoint(const Aws::String& endpoint);
1871     private:
1872       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
1873         void CreateConfigurationSetAsyncHelper(const Model::CreateConfigurationSetRequest& request, const CreateConfigurationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1874         void CreateConfigurationSetEventDestinationAsyncHelper(const Model::CreateConfigurationSetEventDestinationRequest& request, const CreateConfigurationSetEventDestinationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1875         void CreateDedicatedIpPoolAsyncHelper(const Model::CreateDedicatedIpPoolRequest& request, const CreateDedicatedIpPoolResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1876         void CreateDeliverabilityTestReportAsyncHelper(const Model::CreateDeliverabilityTestReportRequest& request, const CreateDeliverabilityTestReportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1877         void CreateEmailIdentityAsyncHelper(const Model::CreateEmailIdentityRequest& request, const CreateEmailIdentityResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1878         void DeleteConfigurationSetAsyncHelper(const Model::DeleteConfigurationSetRequest& request, const DeleteConfigurationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1879         void DeleteConfigurationSetEventDestinationAsyncHelper(const Model::DeleteConfigurationSetEventDestinationRequest& request, const DeleteConfigurationSetEventDestinationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1880         void DeleteDedicatedIpPoolAsyncHelper(const Model::DeleteDedicatedIpPoolRequest& request, const DeleteDedicatedIpPoolResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1881         void DeleteEmailIdentityAsyncHelper(const Model::DeleteEmailIdentityRequest& request, const DeleteEmailIdentityResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1882         void GetAccountAsyncHelper(const Model::GetAccountRequest& request, const GetAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1883         void GetBlacklistReportsAsyncHelper(const Model::GetBlacklistReportsRequest& request, const GetBlacklistReportsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1884         void GetConfigurationSetAsyncHelper(const Model::GetConfigurationSetRequest& request, const GetConfigurationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1885         void GetConfigurationSetEventDestinationsAsyncHelper(const Model::GetConfigurationSetEventDestinationsRequest& request, const GetConfigurationSetEventDestinationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1886         void GetDedicatedIpAsyncHelper(const Model::GetDedicatedIpRequest& request, const GetDedicatedIpResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1887         void GetDedicatedIpsAsyncHelper(const Model::GetDedicatedIpsRequest& request, const GetDedicatedIpsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1888         void GetDeliverabilityDashboardOptionsAsyncHelper(const Model::GetDeliverabilityDashboardOptionsRequest& request, const GetDeliverabilityDashboardOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1889         void GetDeliverabilityTestReportAsyncHelper(const Model::GetDeliverabilityTestReportRequest& request, const GetDeliverabilityTestReportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1890         void GetDomainDeliverabilityCampaignAsyncHelper(const Model::GetDomainDeliverabilityCampaignRequest& request, const GetDomainDeliverabilityCampaignResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1891         void GetDomainStatisticsReportAsyncHelper(const Model::GetDomainStatisticsReportRequest& request, const GetDomainStatisticsReportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1892         void GetEmailIdentityAsyncHelper(const Model::GetEmailIdentityRequest& request, const GetEmailIdentityResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1893         void ListConfigurationSetsAsyncHelper(const Model::ListConfigurationSetsRequest& request, const ListConfigurationSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1894         void ListDedicatedIpPoolsAsyncHelper(const Model::ListDedicatedIpPoolsRequest& request, const ListDedicatedIpPoolsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1895         void ListDeliverabilityTestReportsAsyncHelper(const Model::ListDeliverabilityTestReportsRequest& request, const ListDeliverabilityTestReportsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1896         void ListDomainDeliverabilityCampaignsAsyncHelper(const Model::ListDomainDeliverabilityCampaignsRequest& request, const ListDomainDeliverabilityCampaignsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1897         void ListEmailIdentitiesAsyncHelper(const Model::ListEmailIdentitiesRequest& request, const ListEmailIdentitiesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1898         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1899         void PutAccountDedicatedIpWarmupAttributesAsyncHelper(const Model::PutAccountDedicatedIpWarmupAttributesRequest& request, const PutAccountDedicatedIpWarmupAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1900         void PutAccountSendingAttributesAsyncHelper(const Model::PutAccountSendingAttributesRequest& request, const PutAccountSendingAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1901         void PutConfigurationSetDeliveryOptionsAsyncHelper(const Model::PutConfigurationSetDeliveryOptionsRequest& request, const PutConfigurationSetDeliveryOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1902         void PutConfigurationSetReputationOptionsAsyncHelper(const Model::PutConfigurationSetReputationOptionsRequest& request, const PutConfigurationSetReputationOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1903         void PutConfigurationSetSendingOptionsAsyncHelper(const Model::PutConfigurationSetSendingOptionsRequest& request, const PutConfigurationSetSendingOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1904         void PutConfigurationSetTrackingOptionsAsyncHelper(const Model::PutConfigurationSetTrackingOptionsRequest& request, const PutConfigurationSetTrackingOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1905         void PutDedicatedIpInPoolAsyncHelper(const Model::PutDedicatedIpInPoolRequest& request, const PutDedicatedIpInPoolResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1906         void PutDedicatedIpWarmupAttributesAsyncHelper(const Model::PutDedicatedIpWarmupAttributesRequest& request, const PutDedicatedIpWarmupAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1907         void PutDeliverabilityDashboardOptionAsyncHelper(const Model::PutDeliverabilityDashboardOptionRequest& request, const PutDeliverabilityDashboardOptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1908         void PutEmailIdentityDkimAttributesAsyncHelper(const Model::PutEmailIdentityDkimAttributesRequest& request, const PutEmailIdentityDkimAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1909         void PutEmailIdentityFeedbackAttributesAsyncHelper(const Model::PutEmailIdentityFeedbackAttributesRequest& request, const PutEmailIdentityFeedbackAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1910         void PutEmailIdentityMailFromAttributesAsyncHelper(const Model::PutEmailIdentityMailFromAttributesRequest& request, const PutEmailIdentityMailFromAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1911         void SendEmailAsyncHelper(const Model::SendEmailRequest& request, const SendEmailResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1912         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1913         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1914         void UpdateConfigurationSetEventDestinationAsyncHelper(const Model::UpdateConfigurationSetEventDestinationRequest& request, const UpdateConfigurationSetEventDestinationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1915 
1916       Aws::String m_uri;
1917       Aws::String m_configScheme;
1918       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
1919   };
1920 
1921 } // namespace PinpointEmail
1922 } // namespace Aws
1923