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/route53/Route53_EXPORTS.h>
8 #include <aws/route53/Route53Errors.h>
9 #include <aws/core/client/AWSError.h>
10 #include <aws/core/client/ClientConfiguration.h>
11 #include <aws/core/AmazonSerializableWebServiceRequest.h>
12 #include <aws/core/client/AWSClient.h>
13 #include <aws/core/utils/memory/stl/AWSString.h>
14 #include <aws/core/utils/xml/XmlSerializer.h>
15 #include <aws/route53/model/ActivateKeySigningKeyResult.h>
16 #include <aws/route53/model/AssociateVPCWithHostedZoneResult.h>
17 #include <aws/route53/model/ChangeResourceRecordSetsResult.h>
18 #include <aws/route53/model/ChangeTagsForResourceResult.h>
19 #include <aws/route53/model/CreateHealthCheckResult.h>
20 #include <aws/route53/model/CreateHostedZoneResult.h>
21 #include <aws/route53/model/CreateKeySigningKeyResult.h>
22 #include <aws/route53/model/CreateQueryLoggingConfigResult.h>
23 #include <aws/route53/model/CreateReusableDelegationSetResult.h>
24 #include <aws/route53/model/CreateTrafficPolicyResult.h>
25 #include <aws/route53/model/CreateTrafficPolicyInstanceResult.h>
26 #include <aws/route53/model/CreateTrafficPolicyVersionResult.h>
27 #include <aws/route53/model/CreateVPCAssociationAuthorizationResult.h>
28 #include <aws/route53/model/DeactivateKeySigningKeyResult.h>
29 #include <aws/route53/model/DeleteHealthCheckResult.h>
30 #include <aws/route53/model/DeleteHostedZoneResult.h>
31 #include <aws/route53/model/DeleteKeySigningKeyResult.h>
32 #include <aws/route53/model/DeleteQueryLoggingConfigResult.h>
33 #include <aws/route53/model/DeleteReusableDelegationSetResult.h>
34 #include <aws/route53/model/DeleteTrafficPolicyResult.h>
35 #include <aws/route53/model/DeleteTrafficPolicyInstanceResult.h>
36 #include <aws/route53/model/DeleteVPCAssociationAuthorizationResult.h>
37 #include <aws/route53/model/DisableHostedZoneDNSSECResult.h>
38 #include <aws/route53/model/DisassociateVPCFromHostedZoneResult.h>
39 #include <aws/route53/model/EnableHostedZoneDNSSECResult.h>
40 #include <aws/route53/model/GetAccountLimitResult.h>
41 #include <aws/route53/model/GetChangeResult.h>
42 #include <aws/route53/model/GetCheckerIpRangesResult.h>
43 #include <aws/route53/model/GetDNSSECResult.h>
44 #include <aws/route53/model/GetGeoLocationResult.h>
45 #include <aws/route53/model/GetHealthCheckResult.h>
46 #include <aws/route53/model/GetHealthCheckCountResult.h>
47 #include <aws/route53/model/GetHealthCheckLastFailureReasonResult.h>
48 #include <aws/route53/model/GetHealthCheckStatusResult.h>
49 #include <aws/route53/model/GetHostedZoneResult.h>
50 #include <aws/route53/model/GetHostedZoneCountResult.h>
51 #include <aws/route53/model/GetHostedZoneLimitResult.h>
52 #include <aws/route53/model/GetQueryLoggingConfigResult.h>
53 #include <aws/route53/model/GetReusableDelegationSetResult.h>
54 #include <aws/route53/model/GetReusableDelegationSetLimitResult.h>
55 #include <aws/route53/model/GetTrafficPolicyResult.h>
56 #include <aws/route53/model/GetTrafficPolicyInstanceResult.h>
57 #include <aws/route53/model/GetTrafficPolicyInstanceCountResult.h>
58 #include <aws/route53/model/ListGeoLocationsResult.h>
59 #include <aws/route53/model/ListHealthChecksResult.h>
60 #include <aws/route53/model/ListHostedZonesResult.h>
61 #include <aws/route53/model/ListHostedZonesByNameResult.h>
62 #include <aws/route53/model/ListHostedZonesByVPCResult.h>
63 #include <aws/route53/model/ListQueryLoggingConfigsResult.h>
64 #include <aws/route53/model/ListResourceRecordSetsResult.h>
65 #include <aws/route53/model/ListReusableDelegationSetsResult.h>
66 #include <aws/route53/model/ListTagsForResourceResult.h>
67 #include <aws/route53/model/ListTagsForResourcesResult.h>
68 #include <aws/route53/model/ListTrafficPoliciesResult.h>
69 #include <aws/route53/model/ListTrafficPolicyInstancesResult.h>
70 #include <aws/route53/model/ListTrafficPolicyInstancesByHostedZoneResult.h>
71 #include <aws/route53/model/ListTrafficPolicyInstancesByPolicyResult.h>
72 #include <aws/route53/model/ListTrafficPolicyVersionsResult.h>
73 #include <aws/route53/model/ListVPCAssociationAuthorizationsResult.h>
74 #include <aws/route53/model/TestDNSAnswerResult.h>
75 #include <aws/route53/model/UpdateHealthCheckResult.h>
76 #include <aws/route53/model/UpdateHostedZoneCommentResult.h>
77 #include <aws/route53/model/UpdateTrafficPolicyCommentResult.h>
78 #include <aws/route53/model/UpdateTrafficPolicyInstanceResult.h>
79 #include <aws/core/client/AsyncCallerContext.h>
80 #include <aws/core/http/HttpTypes.h>
81 #include <future>
82 #include <functional>
83 
84 namespace Aws
85 {
86 
87 namespace Http
88 {
89   class HttpClient;
90   class HttpClientFactory;
91 } // namespace Http
92 
93 namespace Utils
94 {
95   template< typename R, typename E> class Outcome;
96 
97 namespace Threading
98 {
99   class Executor;
100 } // namespace Threading
101 
102 namespace Xml
103 {
104   class XmlDocument;
105 } // namespace Xml
106 } // namespace Utils
107 
108 namespace Auth
109 {
110   class AWSCredentials;
111   class AWSCredentialsProvider;
112 } // namespace Auth
113 
114 namespace Client
115 {
116   class RetryStrategy;
117 } // namespace Client
118 
119 namespace Route53
120 {
121 
122 namespace Model
123 {
124         class ActivateKeySigningKeyRequest;
125         class AssociateVPCWithHostedZoneRequest;
126         class ChangeResourceRecordSetsRequest;
127         class ChangeTagsForResourceRequest;
128         class CreateHealthCheckRequest;
129         class CreateHostedZoneRequest;
130         class CreateKeySigningKeyRequest;
131         class CreateQueryLoggingConfigRequest;
132         class CreateReusableDelegationSetRequest;
133         class CreateTrafficPolicyRequest;
134         class CreateTrafficPolicyInstanceRequest;
135         class CreateTrafficPolicyVersionRequest;
136         class CreateVPCAssociationAuthorizationRequest;
137         class DeactivateKeySigningKeyRequest;
138         class DeleteHealthCheckRequest;
139         class DeleteHostedZoneRequest;
140         class DeleteKeySigningKeyRequest;
141         class DeleteQueryLoggingConfigRequest;
142         class DeleteReusableDelegationSetRequest;
143         class DeleteTrafficPolicyRequest;
144         class DeleteTrafficPolicyInstanceRequest;
145         class DeleteVPCAssociationAuthorizationRequest;
146         class DisableHostedZoneDNSSECRequest;
147         class DisassociateVPCFromHostedZoneRequest;
148         class EnableHostedZoneDNSSECRequest;
149         class GetAccountLimitRequest;
150         class GetChangeRequest;
151         class GetCheckerIpRangesRequest;
152         class GetDNSSECRequest;
153         class GetGeoLocationRequest;
154         class GetHealthCheckRequest;
155         class GetHealthCheckCountRequest;
156         class GetHealthCheckLastFailureReasonRequest;
157         class GetHealthCheckStatusRequest;
158         class GetHostedZoneRequest;
159         class GetHostedZoneCountRequest;
160         class GetHostedZoneLimitRequest;
161         class GetQueryLoggingConfigRequest;
162         class GetReusableDelegationSetRequest;
163         class GetReusableDelegationSetLimitRequest;
164         class GetTrafficPolicyRequest;
165         class GetTrafficPolicyInstanceRequest;
166         class GetTrafficPolicyInstanceCountRequest;
167         class ListGeoLocationsRequest;
168         class ListHealthChecksRequest;
169         class ListHostedZonesRequest;
170         class ListHostedZonesByNameRequest;
171         class ListHostedZonesByVPCRequest;
172         class ListQueryLoggingConfigsRequest;
173         class ListResourceRecordSetsRequest;
174         class ListReusableDelegationSetsRequest;
175         class ListTagsForResourceRequest;
176         class ListTagsForResourcesRequest;
177         class ListTrafficPoliciesRequest;
178         class ListTrafficPolicyInstancesRequest;
179         class ListTrafficPolicyInstancesByHostedZoneRequest;
180         class ListTrafficPolicyInstancesByPolicyRequest;
181         class ListTrafficPolicyVersionsRequest;
182         class ListVPCAssociationAuthorizationsRequest;
183         class TestDNSAnswerRequest;
184         class UpdateHealthCheckRequest;
185         class UpdateHostedZoneCommentRequest;
186         class UpdateTrafficPolicyCommentRequest;
187         class UpdateTrafficPolicyInstanceRequest;
188 
189         typedef Aws::Utils::Outcome<ActivateKeySigningKeyResult, Route53Error> ActivateKeySigningKeyOutcome;
190         typedef Aws::Utils::Outcome<AssociateVPCWithHostedZoneResult, Route53Error> AssociateVPCWithHostedZoneOutcome;
191         typedef Aws::Utils::Outcome<ChangeResourceRecordSetsResult, Route53Error> ChangeResourceRecordSetsOutcome;
192         typedef Aws::Utils::Outcome<ChangeTagsForResourceResult, Route53Error> ChangeTagsForResourceOutcome;
193         typedef Aws::Utils::Outcome<CreateHealthCheckResult, Route53Error> CreateHealthCheckOutcome;
194         typedef Aws::Utils::Outcome<CreateHostedZoneResult, Route53Error> CreateHostedZoneOutcome;
195         typedef Aws::Utils::Outcome<CreateKeySigningKeyResult, Route53Error> CreateKeySigningKeyOutcome;
196         typedef Aws::Utils::Outcome<CreateQueryLoggingConfigResult, Route53Error> CreateQueryLoggingConfigOutcome;
197         typedef Aws::Utils::Outcome<CreateReusableDelegationSetResult, Route53Error> CreateReusableDelegationSetOutcome;
198         typedef Aws::Utils::Outcome<CreateTrafficPolicyResult, Route53Error> CreateTrafficPolicyOutcome;
199         typedef Aws::Utils::Outcome<CreateTrafficPolicyInstanceResult, Route53Error> CreateTrafficPolicyInstanceOutcome;
200         typedef Aws::Utils::Outcome<CreateTrafficPolicyVersionResult, Route53Error> CreateTrafficPolicyVersionOutcome;
201         typedef Aws::Utils::Outcome<CreateVPCAssociationAuthorizationResult, Route53Error> CreateVPCAssociationAuthorizationOutcome;
202         typedef Aws::Utils::Outcome<DeactivateKeySigningKeyResult, Route53Error> DeactivateKeySigningKeyOutcome;
203         typedef Aws::Utils::Outcome<DeleteHealthCheckResult, Route53Error> DeleteHealthCheckOutcome;
204         typedef Aws::Utils::Outcome<DeleteHostedZoneResult, Route53Error> DeleteHostedZoneOutcome;
205         typedef Aws::Utils::Outcome<DeleteKeySigningKeyResult, Route53Error> DeleteKeySigningKeyOutcome;
206         typedef Aws::Utils::Outcome<DeleteQueryLoggingConfigResult, Route53Error> DeleteQueryLoggingConfigOutcome;
207         typedef Aws::Utils::Outcome<DeleteReusableDelegationSetResult, Route53Error> DeleteReusableDelegationSetOutcome;
208         typedef Aws::Utils::Outcome<DeleteTrafficPolicyResult, Route53Error> DeleteTrafficPolicyOutcome;
209         typedef Aws::Utils::Outcome<DeleteTrafficPolicyInstanceResult, Route53Error> DeleteTrafficPolicyInstanceOutcome;
210         typedef Aws::Utils::Outcome<DeleteVPCAssociationAuthorizationResult, Route53Error> DeleteVPCAssociationAuthorizationOutcome;
211         typedef Aws::Utils::Outcome<DisableHostedZoneDNSSECResult, Route53Error> DisableHostedZoneDNSSECOutcome;
212         typedef Aws::Utils::Outcome<DisassociateVPCFromHostedZoneResult, Route53Error> DisassociateVPCFromHostedZoneOutcome;
213         typedef Aws::Utils::Outcome<EnableHostedZoneDNSSECResult, Route53Error> EnableHostedZoneDNSSECOutcome;
214         typedef Aws::Utils::Outcome<GetAccountLimitResult, Route53Error> GetAccountLimitOutcome;
215         typedef Aws::Utils::Outcome<GetChangeResult, Route53Error> GetChangeOutcome;
216         typedef Aws::Utils::Outcome<GetCheckerIpRangesResult, Route53Error> GetCheckerIpRangesOutcome;
217         typedef Aws::Utils::Outcome<GetDNSSECResult, Route53Error> GetDNSSECOutcome;
218         typedef Aws::Utils::Outcome<GetGeoLocationResult, Route53Error> GetGeoLocationOutcome;
219         typedef Aws::Utils::Outcome<GetHealthCheckResult, Route53Error> GetHealthCheckOutcome;
220         typedef Aws::Utils::Outcome<GetHealthCheckCountResult, Route53Error> GetHealthCheckCountOutcome;
221         typedef Aws::Utils::Outcome<GetHealthCheckLastFailureReasonResult, Route53Error> GetHealthCheckLastFailureReasonOutcome;
222         typedef Aws::Utils::Outcome<GetHealthCheckStatusResult, Route53Error> GetHealthCheckStatusOutcome;
223         typedef Aws::Utils::Outcome<GetHostedZoneResult, Route53Error> GetHostedZoneOutcome;
224         typedef Aws::Utils::Outcome<GetHostedZoneCountResult, Route53Error> GetHostedZoneCountOutcome;
225         typedef Aws::Utils::Outcome<GetHostedZoneLimitResult, Route53Error> GetHostedZoneLimitOutcome;
226         typedef Aws::Utils::Outcome<GetQueryLoggingConfigResult, Route53Error> GetQueryLoggingConfigOutcome;
227         typedef Aws::Utils::Outcome<GetReusableDelegationSetResult, Route53Error> GetReusableDelegationSetOutcome;
228         typedef Aws::Utils::Outcome<GetReusableDelegationSetLimitResult, Route53Error> GetReusableDelegationSetLimitOutcome;
229         typedef Aws::Utils::Outcome<GetTrafficPolicyResult, Route53Error> GetTrafficPolicyOutcome;
230         typedef Aws::Utils::Outcome<GetTrafficPolicyInstanceResult, Route53Error> GetTrafficPolicyInstanceOutcome;
231         typedef Aws::Utils::Outcome<GetTrafficPolicyInstanceCountResult, Route53Error> GetTrafficPolicyInstanceCountOutcome;
232         typedef Aws::Utils::Outcome<ListGeoLocationsResult, Route53Error> ListGeoLocationsOutcome;
233         typedef Aws::Utils::Outcome<ListHealthChecksResult, Route53Error> ListHealthChecksOutcome;
234         typedef Aws::Utils::Outcome<ListHostedZonesResult, Route53Error> ListHostedZonesOutcome;
235         typedef Aws::Utils::Outcome<ListHostedZonesByNameResult, Route53Error> ListHostedZonesByNameOutcome;
236         typedef Aws::Utils::Outcome<ListHostedZonesByVPCResult, Route53Error> ListHostedZonesByVPCOutcome;
237         typedef Aws::Utils::Outcome<ListQueryLoggingConfigsResult, Route53Error> ListQueryLoggingConfigsOutcome;
238         typedef Aws::Utils::Outcome<ListResourceRecordSetsResult, Route53Error> ListResourceRecordSetsOutcome;
239         typedef Aws::Utils::Outcome<ListReusableDelegationSetsResult, Route53Error> ListReusableDelegationSetsOutcome;
240         typedef Aws::Utils::Outcome<ListTagsForResourceResult, Route53Error> ListTagsForResourceOutcome;
241         typedef Aws::Utils::Outcome<ListTagsForResourcesResult, Route53Error> ListTagsForResourcesOutcome;
242         typedef Aws::Utils::Outcome<ListTrafficPoliciesResult, Route53Error> ListTrafficPoliciesOutcome;
243         typedef Aws::Utils::Outcome<ListTrafficPolicyInstancesResult, Route53Error> ListTrafficPolicyInstancesOutcome;
244         typedef Aws::Utils::Outcome<ListTrafficPolicyInstancesByHostedZoneResult, Route53Error> ListTrafficPolicyInstancesByHostedZoneOutcome;
245         typedef Aws::Utils::Outcome<ListTrafficPolicyInstancesByPolicyResult, Route53Error> ListTrafficPolicyInstancesByPolicyOutcome;
246         typedef Aws::Utils::Outcome<ListTrafficPolicyVersionsResult, Route53Error> ListTrafficPolicyVersionsOutcome;
247         typedef Aws::Utils::Outcome<ListVPCAssociationAuthorizationsResult, Route53Error> ListVPCAssociationAuthorizationsOutcome;
248         typedef Aws::Utils::Outcome<TestDNSAnswerResult, Route53Error> TestDNSAnswerOutcome;
249         typedef Aws::Utils::Outcome<UpdateHealthCheckResult, Route53Error> UpdateHealthCheckOutcome;
250         typedef Aws::Utils::Outcome<UpdateHostedZoneCommentResult, Route53Error> UpdateHostedZoneCommentOutcome;
251         typedef Aws::Utils::Outcome<UpdateTrafficPolicyCommentResult, Route53Error> UpdateTrafficPolicyCommentOutcome;
252         typedef Aws::Utils::Outcome<UpdateTrafficPolicyInstanceResult, Route53Error> UpdateTrafficPolicyInstanceOutcome;
253 
254         typedef std::future<ActivateKeySigningKeyOutcome> ActivateKeySigningKeyOutcomeCallable;
255         typedef std::future<AssociateVPCWithHostedZoneOutcome> AssociateVPCWithHostedZoneOutcomeCallable;
256         typedef std::future<ChangeResourceRecordSetsOutcome> ChangeResourceRecordSetsOutcomeCallable;
257         typedef std::future<ChangeTagsForResourceOutcome> ChangeTagsForResourceOutcomeCallable;
258         typedef std::future<CreateHealthCheckOutcome> CreateHealthCheckOutcomeCallable;
259         typedef std::future<CreateHostedZoneOutcome> CreateHostedZoneOutcomeCallable;
260         typedef std::future<CreateKeySigningKeyOutcome> CreateKeySigningKeyOutcomeCallable;
261         typedef std::future<CreateQueryLoggingConfigOutcome> CreateQueryLoggingConfigOutcomeCallable;
262         typedef std::future<CreateReusableDelegationSetOutcome> CreateReusableDelegationSetOutcomeCallable;
263         typedef std::future<CreateTrafficPolicyOutcome> CreateTrafficPolicyOutcomeCallable;
264         typedef std::future<CreateTrafficPolicyInstanceOutcome> CreateTrafficPolicyInstanceOutcomeCallable;
265         typedef std::future<CreateTrafficPolicyVersionOutcome> CreateTrafficPolicyVersionOutcomeCallable;
266         typedef std::future<CreateVPCAssociationAuthorizationOutcome> CreateVPCAssociationAuthorizationOutcomeCallable;
267         typedef std::future<DeactivateKeySigningKeyOutcome> DeactivateKeySigningKeyOutcomeCallable;
268         typedef std::future<DeleteHealthCheckOutcome> DeleteHealthCheckOutcomeCallable;
269         typedef std::future<DeleteHostedZoneOutcome> DeleteHostedZoneOutcomeCallable;
270         typedef std::future<DeleteKeySigningKeyOutcome> DeleteKeySigningKeyOutcomeCallable;
271         typedef std::future<DeleteQueryLoggingConfigOutcome> DeleteQueryLoggingConfigOutcomeCallable;
272         typedef std::future<DeleteReusableDelegationSetOutcome> DeleteReusableDelegationSetOutcomeCallable;
273         typedef std::future<DeleteTrafficPolicyOutcome> DeleteTrafficPolicyOutcomeCallable;
274         typedef std::future<DeleteTrafficPolicyInstanceOutcome> DeleteTrafficPolicyInstanceOutcomeCallable;
275         typedef std::future<DeleteVPCAssociationAuthorizationOutcome> DeleteVPCAssociationAuthorizationOutcomeCallable;
276         typedef std::future<DisableHostedZoneDNSSECOutcome> DisableHostedZoneDNSSECOutcomeCallable;
277         typedef std::future<DisassociateVPCFromHostedZoneOutcome> DisassociateVPCFromHostedZoneOutcomeCallable;
278         typedef std::future<EnableHostedZoneDNSSECOutcome> EnableHostedZoneDNSSECOutcomeCallable;
279         typedef std::future<GetAccountLimitOutcome> GetAccountLimitOutcomeCallable;
280         typedef std::future<GetChangeOutcome> GetChangeOutcomeCallable;
281         typedef std::future<GetCheckerIpRangesOutcome> GetCheckerIpRangesOutcomeCallable;
282         typedef std::future<GetDNSSECOutcome> GetDNSSECOutcomeCallable;
283         typedef std::future<GetGeoLocationOutcome> GetGeoLocationOutcomeCallable;
284         typedef std::future<GetHealthCheckOutcome> GetHealthCheckOutcomeCallable;
285         typedef std::future<GetHealthCheckCountOutcome> GetHealthCheckCountOutcomeCallable;
286         typedef std::future<GetHealthCheckLastFailureReasonOutcome> GetHealthCheckLastFailureReasonOutcomeCallable;
287         typedef std::future<GetHealthCheckStatusOutcome> GetHealthCheckStatusOutcomeCallable;
288         typedef std::future<GetHostedZoneOutcome> GetHostedZoneOutcomeCallable;
289         typedef std::future<GetHostedZoneCountOutcome> GetHostedZoneCountOutcomeCallable;
290         typedef std::future<GetHostedZoneLimitOutcome> GetHostedZoneLimitOutcomeCallable;
291         typedef std::future<GetQueryLoggingConfigOutcome> GetQueryLoggingConfigOutcomeCallable;
292         typedef std::future<GetReusableDelegationSetOutcome> GetReusableDelegationSetOutcomeCallable;
293         typedef std::future<GetReusableDelegationSetLimitOutcome> GetReusableDelegationSetLimitOutcomeCallable;
294         typedef std::future<GetTrafficPolicyOutcome> GetTrafficPolicyOutcomeCallable;
295         typedef std::future<GetTrafficPolicyInstanceOutcome> GetTrafficPolicyInstanceOutcomeCallable;
296         typedef std::future<GetTrafficPolicyInstanceCountOutcome> GetTrafficPolicyInstanceCountOutcomeCallable;
297         typedef std::future<ListGeoLocationsOutcome> ListGeoLocationsOutcomeCallable;
298         typedef std::future<ListHealthChecksOutcome> ListHealthChecksOutcomeCallable;
299         typedef std::future<ListHostedZonesOutcome> ListHostedZonesOutcomeCallable;
300         typedef std::future<ListHostedZonesByNameOutcome> ListHostedZonesByNameOutcomeCallable;
301         typedef std::future<ListHostedZonesByVPCOutcome> ListHostedZonesByVPCOutcomeCallable;
302         typedef std::future<ListQueryLoggingConfigsOutcome> ListQueryLoggingConfigsOutcomeCallable;
303         typedef std::future<ListResourceRecordSetsOutcome> ListResourceRecordSetsOutcomeCallable;
304         typedef std::future<ListReusableDelegationSetsOutcome> ListReusableDelegationSetsOutcomeCallable;
305         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
306         typedef std::future<ListTagsForResourcesOutcome> ListTagsForResourcesOutcomeCallable;
307         typedef std::future<ListTrafficPoliciesOutcome> ListTrafficPoliciesOutcomeCallable;
308         typedef std::future<ListTrafficPolicyInstancesOutcome> ListTrafficPolicyInstancesOutcomeCallable;
309         typedef std::future<ListTrafficPolicyInstancesByHostedZoneOutcome> ListTrafficPolicyInstancesByHostedZoneOutcomeCallable;
310         typedef std::future<ListTrafficPolicyInstancesByPolicyOutcome> ListTrafficPolicyInstancesByPolicyOutcomeCallable;
311         typedef std::future<ListTrafficPolicyVersionsOutcome> ListTrafficPolicyVersionsOutcomeCallable;
312         typedef std::future<ListVPCAssociationAuthorizationsOutcome> ListVPCAssociationAuthorizationsOutcomeCallable;
313         typedef std::future<TestDNSAnswerOutcome> TestDNSAnswerOutcomeCallable;
314         typedef std::future<UpdateHealthCheckOutcome> UpdateHealthCheckOutcomeCallable;
315         typedef std::future<UpdateHostedZoneCommentOutcome> UpdateHostedZoneCommentOutcomeCallable;
316         typedef std::future<UpdateTrafficPolicyCommentOutcome> UpdateTrafficPolicyCommentOutcomeCallable;
317         typedef std::future<UpdateTrafficPolicyInstanceOutcome> UpdateTrafficPolicyInstanceOutcomeCallable;
318 } // namespace Model
319 
320   class Route53Client;
321 
322     typedef std::function<void(const Route53Client*, const Model::ActivateKeySigningKeyRequest&, const Model::ActivateKeySigningKeyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ActivateKeySigningKeyResponseReceivedHandler;
323     typedef std::function<void(const Route53Client*, const Model::AssociateVPCWithHostedZoneRequest&, const Model::AssociateVPCWithHostedZoneOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateVPCWithHostedZoneResponseReceivedHandler;
324     typedef std::function<void(const Route53Client*, const Model::ChangeResourceRecordSetsRequest&, const Model::ChangeResourceRecordSetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ChangeResourceRecordSetsResponseReceivedHandler;
325     typedef std::function<void(const Route53Client*, const Model::ChangeTagsForResourceRequest&, const Model::ChangeTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ChangeTagsForResourceResponseReceivedHandler;
326     typedef std::function<void(const Route53Client*, const Model::CreateHealthCheckRequest&, const Model::CreateHealthCheckOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateHealthCheckResponseReceivedHandler;
327     typedef std::function<void(const Route53Client*, const Model::CreateHostedZoneRequest&, const Model::CreateHostedZoneOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateHostedZoneResponseReceivedHandler;
328     typedef std::function<void(const Route53Client*, const Model::CreateKeySigningKeyRequest&, const Model::CreateKeySigningKeyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateKeySigningKeyResponseReceivedHandler;
329     typedef std::function<void(const Route53Client*, const Model::CreateQueryLoggingConfigRequest&, const Model::CreateQueryLoggingConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateQueryLoggingConfigResponseReceivedHandler;
330     typedef std::function<void(const Route53Client*, const Model::CreateReusableDelegationSetRequest&, const Model::CreateReusableDelegationSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateReusableDelegationSetResponseReceivedHandler;
331     typedef std::function<void(const Route53Client*, const Model::CreateTrafficPolicyRequest&, const Model::CreateTrafficPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTrafficPolicyResponseReceivedHandler;
332     typedef std::function<void(const Route53Client*, const Model::CreateTrafficPolicyInstanceRequest&, const Model::CreateTrafficPolicyInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTrafficPolicyInstanceResponseReceivedHandler;
333     typedef std::function<void(const Route53Client*, const Model::CreateTrafficPolicyVersionRequest&, const Model::CreateTrafficPolicyVersionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTrafficPolicyVersionResponseReceivedHandler;
334     typedef std::function<void(const Route53Client*, const Model::CreateVPCAssociationAuthorizationRequest&, const Model::CreateVPCAssociationAuthorizationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVPCAssociationAuthorizationResponseReceivedHandler;
335     typedef std::function<void(const Route53Client*, const Model::DeactivateKeySigningKeyRequest&, const Model::DeactivateKeySigningKeyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeactivateKeySigningKeyResponseReceivedHandler;
336     typedef std::function<void(const Route53Client*, const Model::DeleteHealthCheckRequest&, const Model::DeleteHealthCheckOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteHealthCheckResponseReceivedHandler;
337     typedef std::function<void(const Route53Client*, const Model::DeleteHostedZoneRequest&, const Model::DeleteHostedZoneOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteHostedZoneResponseReceivedHandler;
338     typedef std::function<void(const Route53Client*, const Model::DeleteKeySigningKeyRequest&, const Model::DeleteKeySigningKeyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteKeySigningKeyResponseReceivedHandler;
339     typedef std::function<void(const Route53Client*, const Model::DeleteQueryLoggingConfigRequest&, const Model::DeleteQueryLoggingConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteQueryLoggingConfigResponseReceivedHandler;
340     typedef std::function<void(const Route53Client*, const Model::DeleteReusableDelegationSetRequest&, const Model::DeleteReusableDelegationSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteReusableDelegationSetResponseReceivedHandler;
341     typedef std::function<void(const Route53Client*, const Model::DeleteTrafficPolicyRequest&, const Model::DeleteTrafficPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTrafficPolicyResponseReceivedHandler;
342     typedef std::function<void(const Route53Client*, const Model::DeleteTrafficPolicyInstanceRequest&, const Model::DeleteTrafficPolicyInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTrafficPolicyInstanceResponseReceivedHandler;
343     typedef std::function<void(const Route53Client*, const Model::DeleteVPCAssociationAuthorizationRequest&, const Model::DeleteVPCAssociationAuthorizationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteVPCAssociationAuthorizationResponseReceivedHandler;
344     typedef std::function<void(const Route53Client*, const Model::DisableHostedZoneDNSSECRequest&, const Model::DisableHostedZoneDNSSECOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableHostedZoneDNSSECResponseReceivedHandler;
345     typedef std::function<void(const Route53Client*, const Model::DisassociateVPCFromHostedZoneRequest&, const Model::DisassociateVPCFromHostedZoneOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateVPCFromHostedZoneResponseReceivedHandler;
346     typedef std::function<void(const Route53Client*, const Model::EnableHostedZoneDNSSECRequest&, const Model::EnableHostedZoneDNSSECOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableHostedZoneDNSSECResponseReceivedHandler;
347     typedef std::function<void(const Route53Client*, const Model::GetAccountLimitRequest&, const Model::GetAccountLimitOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAccountLimitResponseReceivedHandler;
348     typedef std::function<void(const Route53Client*, const Model::GetChangeRequest&, const Model::GetChangeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetChangeResponseReceivedHandler;
349     typedef std::function<void(const Route53Client*, const Model::GetCheckerIpRangesRequest&, const Model::GetCheckerIpRangesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetCheckerIpRangesResponseReceivedHandler;
350     typedef std::function<void(const Route53Client*, const Model::GetDNSSECRequest&, const Model::GetDNSSECOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDNSSECResponseReceivedHandler;
351     typedef std::function<void(const Route53Client*, const Model::GetGeoLocationRequest&, const Model::GetGeoLocationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetGeoLocationResponseReceivedHandler;
352     typedef std::function<void(const Route53Client*, const Model::GetHealthCheckRequest&, const Model::GetHealthCheckOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetHealthCheckResponseReceivedHandler;
353     typedef std::function<void(const Route53Client*, const Model::GetHealthCheckCountRequest&, const Model::GetHealthCheckCountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetHealthCheckCountResponseReceivedHandler;
354     typedef std::function<void(const Route53Client*, const Model::GetHealthCheckLastFailureReasonRequest&, const Model::GetHealthCheckLastFailureReasonOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetHealthCheckLastFailureReasonResponseReceivedHandler;
355     typedef std::function<void(const Route53Client*, const Model::GetHealthCheckStatusRequest&, const Model::GetHealthCheckStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetHealthCheckStatusResponseReceivedHandler;
356     typedef std::function<void(const Route53Client*, const Model::GetHostedZoneRequest&, const Model::GetHostedZoneOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetHostedZoneResponseReceivedHandler;
357     typedef std::function<void(const Route53Client*, const Model::GetHostedZoneCountRequest&, const Model::GetHostedZoneCountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetHostedZoneCountResponseReceivedHandler;
358     typedef std::function<void(const Route53Client*, const Model::GetHostedZoneLimitRequest&, const Model::GetHostedZoneLimitOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetHostedZoneLimitResponseReceivedHandler;
359     typedef std::function<void(const Route53Client*, const Model::GetQueryLoggingConfigRequest&, const Model::GetQueryLoggingConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetQueryLoggingConfigResponseReceivedHandler;
360     typedef std::function<void(const Route53Client*, const Model::GetReusableDelegationSetRequest&, const Model::GetReusableDelegationSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetReusableDelegationSetResponseReceivedHandler;
361     typedef std::function<void(const Route53Client*, const Model::GetReusableDelegationSetLimitRequest&, const Model::GetReusableDelegationSetLimitOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetReusableDelegationSetLimitResponseReceivedHandler;
362     typedef std::function<void(const Route53Client*, const Model::GetTrafficPolicyRequest&, const Model::GetTrafficPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTrafficPolicyResponseReceivedHandler;
363     typedef std::function<void(const Route53Client*, const Model::GetTrafficPolicyInstanceRequest&, const Model::GetTrafficPolicyInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTrafficPolicyInstanceResponseReceivedHandler;
364     typedef std::function<void(const Route53Client*, const Model::GetTrafficPolicyInstanceCountRequest&, const Model::GetTrafficPolicyInstanceCountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTrafficPolicyInstanceCountResponseReceivedHandler;
365     typedef std::function<void(const Route53Client*, const Model::ListGeoLocationsRequest&, const Model::ListGeoLocationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListGeoLocationsResponseReceivedHandler;
366     typedef std::function<void(const Route53Client*, const Model::ListHealthChecksRequest&, const Model::ListHealthChecksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListHealthChecksResponseReceivedHandler;
367     typedef std::function<void(const Route53Client*, const Model::ListHostedZonesRequest&, const Model::ListHostedZonesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListHostedZonesResponseReceivedHandler;
368     typedef std::function<void(const Route53Client*, const Model::ListHostedZonesByNameRequest&, const Model::ListHostedZonesByNameOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListHostedZonesByNameResponseReceivedHandler;
369     typedef std::function<void(const Route53Client*, const Model::ListHostedZonesByVPCRequest&, const Model::ListHostedZonesByVPCOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListHostedZonesByVPCResponseReceivedHandler;
370     typedef std::function<void(const Route53Client*, const Model::ListQueryLoggingConfigsRequest&, const Model::ListQueryLoggingConfigsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListQueryLoggingConfigsResponseReceivedHandler;
371     typedef std::function<void(const Route53Client*, const Model::ListResourceRecordSetsRequest&, const Model::ListResourceRecordSetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListResourceRecordSetsResponseReceivedHandler;
372     typedef std::function<void(const Route53Client*, const Model::ListReusableDelegationSetsRequest&, const Model::ListReusableDelegationSetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListReusableDelegationSetsResponseReceivedHandler;
373     typedef std::function<void(const Route53Client*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
374     typedef std::function<void(const Route53Client*, const Model::ListTagsForResourcesRequest&, const Model::ListTagsForResourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourcesResponseReceivedHandler;
375     typedef std::function<void(const Route53Client*, const Model::ListTrafficPoliciesRequest&, const Model::ListTrafficPoliciesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTrafficPoliciesResponseReceivedHandler;
376     typedef std::function<void(const Route53Client*, const Model::ListTrafficPolicyInstancesRequest&, const Model::ListTrafficPolicyInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTrafficPolicyInstancesResponseReceivedHandler;
377     typedef std::function<void(const Route53Client*, const Model::ListTrafficPolicyInstancesByHostedZoneRequest&, const Model::ListTrafficPolicyInstancesByHostedZoneOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTrafficPolicyInstancesByHostedZoneResponseReceivedHandler;
378     typedef std::function<void(const Route53Client*, const Model::ListTrafficPolicyInstancesByPolicyRequest&, const Model::ListTrafficPolicyInstancesByPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTrafficPolicyInstancesByPolicyResponseReceivedHandler;
379     typedef std::function<void(const Route53Client*, const Model::ListTrafficPolicyVersionsRequest&, const Model::ListTrafficPolicyVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTrafficPolicyVersionsResponseReceivedHandler;
380     typedef std::function<void(const Route53Client*, const Model::ListVPCAssociationAuthorizationsRequest&, const Model::ListVPCAssociationAuthorizationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListVPCAssociationAuthorizationsResponseReceivedHandler;
381     typedef std::function<void(const Route53Client*, const Model::TestDNSAnswerRequest&, const Model::TestDNSAnswerOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TestDNSAnswerResponseReceivedHandler;
382     typedef std::function<void(const Route53Client*, const Model::UpdateHealthCheckRequest&, const Model::UpdateHealthCheckOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateHealthCheckResponseReceivedHandler;
383     typedef std::function<void(const Route53Client*, const Model::UpdateHostedZoneCommentRequest&, const Model::UpdateHostedZoneCommentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateHostedZoneCommentResponseReceivedHandler;
384     typedef std::function<void(const Route53Client*, const Model::UpdateTrafficPolicyCommentRequest&, const Model::UpdateTrafficPolicyCommentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateTrafficPolicyCommentResponseReceivedHandler;
385     typedef std::function<void(const Route53Client*, const Model::UpdateTrafficPolicyInstanceRequest&, const Model::UpdateTrafficPolicyInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateTrafficPolicyInstanceResponseReceivedHandler;
386 
387   /**
388    * <p>Amazon Route 53 is a highly available and scalable Domain Name System (DNS)
389    * web service.</p>
390    */
391   class AWS_ROUTE53_API Route53Client : public Aws::Client::AWSXMLClient
392   {
393     public:
394       typedef Aws::Client::AWSXMLClient BASECLASS;
395 
396        /**
397         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
398         * is not specified, it will be initialized to default values.
399         */
400         Route53Client(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
401 
402        /**
403         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
404         * is not specified, it will be initialized to default values.
405         */
406         Route53Client(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
407 
408        /**
409         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
410         * the default http client factory will be used
411         */
412         Route53Client(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
413             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
414 
415         virtual ~Route53Client();
416 
417 
418         /**
419          * <p>Activates a key-signing key (KSK) so that it can be used for signing by
420          * DNSSEC. This operation changes the KSK status to
421          * <code>ACTIVE</code>.</p><p><h3>See Also:</h3>   <a
422          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ActivateKeySigningKey">AWS
423          * API Reference</a></p>
424          */
425         virtual Model::ActivateKeySigningKeyOutcome ActivateKeySigningKey(const Model::ActivateKeySigningKeyRequest& request) const;
426 
427         /**
428          * <p>Activates a key-signing key (KSK) so that it can be used for signing by
429          * DNSSEC. This operation changes the KSK status to
430          * <code>ACTIVE</code>.</p><p><h3>See Also:</h3>   <a
431          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ActivateKeySigningKey">AWS
432          * API Reference</a></p>
433          *
434          * returns a future to the operation so that it can be executed in parallel to other requests.
435          */
436         virtual Model::ActivateKeySigningKeyOutcomeCallable ActivateKeySigningKeyCallable(const Model::ActivateKeySigningKeyRequest& request) const;
437 
438         /**
439          * <p>Activates a key-signing key (KSK) so that it can be used for signing by
440          * DNSSEC. This operation changes the KSK status to
441          * <code>ACTIVE</code>.</p><p><h3>See Also:</h3>   <a
442          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ActivateKeySigningKey">AWS
443          * API Reference</a></p>
444          *
445          * Queues the request into a thread executor and triggers associated callback when operation has finished.
446          */
447         virtual void ActivateKeySigningKeyAsync(const Model::ActivateKeySigningKeyRequest& request, const ActivateKeySigningKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
448 
449         /**
450          * <p>Associates an Amazon VPC with a private hosted zone. </p>  <p>To
451          * perform the association, the VPC and the private hosted zone must already exist.
452          * You can't convert a public hosted zone into a private hosted zone.</p>
453          *   <p>If you want to associate a VPC that was created by using
454          * one Amazon Web Services account with a private hosted zone that was created by
455          * using a different account, the Amazon Web Services account that created the
456          * private hosted zone must first submit a
457          * <code>CreateVPCAssociationAuthorization</code> request. Then the account that
458          * created the VPC must submit an <code>AssociateVPCWithHostedZone</code>
459          * request.</p> <p><h3>See Also:</h3>   <a
460          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AssociateVPCWithHostedZone">AWS
461          * API Reference</a></p>
462          */
463         virtual Model::AssociateVPCWithHostedZoneOutcome AssociateVPCWithHostedZone(const Model::AssociateVPCWithHostedZoneRequest& request) const;
464 
465         /**
466          * <p>Associates an Amazon VPC with a private hosted zone. </p>  <p>To
467          * perform the association, the VPC and the private hosted zone must already exist.
468          * You can't convert a public hosted zone into a private hosted zone.</p>
469          *   <p>If you want to associate a VPC that was created by using
470          * one Amazon Web Services account with a private hosted zone that was created by
471          * using a different account, the Amazon Web Services account that created the
472          * private hosted zone must first submit a
473          * <code>CreateVPCAssociationAuthorization</code> request. Then the account that
474          * created the VPC must submit an <code>AssociateVPCWithHostedZone</code>
475          * request.</p> <p><h3>See Also:</h3>   <a
476          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AssociateVPCWithHostedZone">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::AssociateVPCWithHostedZoneOutcomeCallable AssociateVPCWithHostedZoneCallable(const Model::AssociateVPCWithHostedZoneRequest& request) const;
482 
483         /**
484          * <p>Associates an Amazon VPC with a private hosted zone. </p>  <p>To
485          * perform the association, the VPC and the private hosted zone must already exist.
486          * You can't convert a public hosted zone into a private hosted zone.</p>
487          *   <p>If you want to associate a VPC that was created by using
488          * one Amazon Web Services account with a private hosted zone that was created by
489          * using a different account, the Amazon Web Services account that created the
490          * private hosted zone must first submit a
491          * <code>CreateVPCAssociationAuthorization</code> request. Then the account that
492          * created the VPC must submit an <code>AssociateVPCWithHostedZone</code>
493          * request.</p> <p><h3>See Also:</h3>   <a
494          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AssociateVPCWithHostedZone">AWS
495          * API Reference</a></p>
496          *
497          * Queues the request into a thread executor and triggers associated callback when operation has finished.
498          */
499         virtual void AssociateVPCWithHostedZoneAsync(const Model::AssociateVPCWithHostedZoneRequest& request, const AssociateVPCWithHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
500 
501         /**
502          * <p>Creates, changes, or deletes a resource record set, which contains
503          * authoritative DNS information for a specified domain name or subdomain name. For
504          * example, you can use <code>ChangeResourceRecordSets</code> to create a resource
505          * record set that routes traffic for test.example.com to a web server that has an
506          * IP address of 192.0.2.44.</p> <p> <b>Deleting Resource Record Sets</b> </p>
507          * <p>To delete a resource record set, you must specify all the same values that
508          * you specified when you created it.</p> <p> <b>Change Batches and Transactional
509          * Changes</b> </p> <p>The request body must include a document with a
510          * <code>ChangeResourceRecordSetsRequest</code> element. The request body contains
511          * a list of change items, known as a change batch. Change batches are considered
512          * transactional changes. Route 53 validates the changes in the request and then
513          * either makes all or none of the changes in the change batch request. This
514          * ensures that DNS routing isn't adversely affected by partial changes to the
515          * resource record sets in a hosted zone. </p> <p>For example, suppose a change
516          * batch request contains two changes: it deletes the <code>CNAME</code> resource
517          * record set for www.example.com and creates an alias resource record set for
518          * www.example.com. If validation for both records succeeds, Route 53 deletes the
519          * first resource record set and creates the second resource record set in a single
520          * operation. If validation for either the <code>DELETE</code> or the
521          * <code>CREATE</code> action fails, then the request is canceled, and the original
522          * <code>CNAME</code> record continues to exist.</p>  <p>If you try to delete
523          * the same resource record set more than once in a single change batch, Route 53
524          * returns an <code>InvalidChangeBatch</code> error.</p>  <p> <b>Traffic
525          * Flow</b> </p> <p>To create resource record sets for complex routing
526          * configurations, use either the traffic flow visual editor in the Route 53
527          * console or the API actions for traffic policies and traffic policy instances.
528          * Save the configuration as a traffic policy, then associate the traffic policy
529          * with one or more domain names (such as example.com) or subdomain names (such as
530          * www.example.com), in the same hosted zone or in multiple hosted zones. You can
531          * roll back the updates if the new configuration isn't performing as expected. For
532          * more information, see <a
533          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/traffic-flow.html">Using
534          * Traffic Flow to Route DNS Traffic</a> in the <i>Amazon Route 53 Developer
535          * Guide</i>.</p> <p> <b>Create, Delete, and Upsert</b> </p> <p>Use
536          * <code>ChangeResourceRecordsSetsRequest</code> to perform the following
537          * actions:</p> <ul> <li> <p> <code>CREATE</code>: Creates a resource record set
538          * that has the specified values.</p> </li> <li> <p> <code>DELETE</code>: Deletes
539          * an existing resource record set that has the specified values.</p> </li> <li>
540          * <p> <code>UPSERT</code>: If a resource record set does not already exist, Amazon
541          * Web Services creates it. If a resource set does exist, Route 53 updates it with
542          * the values in the request. </p> </li> </ul> <p> <b>Syntaxes for Creating,
543          * Updating, and Deleting Resource Record Sets</b> </p> <p>The syntax for a request
544          * depends on the type of resource record set that you want to create, delete, or
545          * update, such as weighted, alias, or failover. The XML elements in your request
546          * must appear in the order listed in the syntax. </p> <p>For an example for each
547          * type of resource record set, see "Examples."</p> <p>Don't refer to the syntax in
548          * the "Parameter Syntax" section, which includes all of the elements for every
549          * kind of resource record set that you can create, delete, or update by using
550          * <code>ChangeResourceRecordSets</code>. </p> <p> <b>Change Propagation to Route
551          * 53 DNS Servers</b> </p> <p>When you submit a
552          * <code>ChangeResourceRecordSets</code> request, Route 53 propagates your changes
553          * to all of the Route 53 authoritative DNS servers. While your changes are
554          * propagating, <code>GetChange</code> returns a status of <code>PENDING</code>.
555          * When propagation is complete, <code>GetChange</code> returns a status of
556          * <code>INSYNC</code>. Changes generally propagate to all Route 53 name servers
557          * within 60 seconds. For more information, see <a
558          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a>.</p>
559          * <p> <b>Limits on ChangeResourceRecordSets Requests</b> </p> <p>For information
560          * about the limits on a <code>ChangeResourceRecordSets</code> request, see <a
561          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
562          * in the <i>Amazon Route 53 Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
563          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeResourceRecordSets">AWS
564          * API Reference</a></p>
565          */
566         virtual Model::ChangeResourceRecordSetsOutcome ChangeResourceRecordSets(const Model::ChangeResourceRecordSetsRequest& request) const;
567 
568         /**
569          * <p>Creates, changes, or deletes a resource record set, which contains
570          * authoritative DNS information for a specified domain name or subdomain name. For
571          * example, you can use <code>ChangeResourceRecordSets</code> to create a resource
572          * record set that routes traffic for test.example.com to a web server that has an
573          * IP address of 192.0.2.44.</p> <p> <b>Deleting Resource Record Sets</b> </p>
574          * <p>To delete a resource record set, you must specify all the same values that
575          * you specified when you created it.</p> <p> <b>Change Batches and Transactional
576          * Changes</b> </p> <p>The request body must include a document with a
577          * <code>ChangeResourceRecordSetsRequest</code> element. The request body contains
578          * a list of change items, known as a change batch. Change batches are considered
579          * transactional changes. Route 53 validates the changes in the request and then
580          * either makes all or none of the changes in the change batch request. This
581          * ensures that DNS routing isn't adversely affected by partial changes to the
582          * resource record sets in a hosted zone. </p> <p>For example, suppose a change
583          * batch request contains two changes: it deletes the <code>CNAME</code> resource
584          * record set for www.example.com and creates an alias resource record set for
585          * www.example.com. If validation for both records succeeds, Route 53 deletes the
586          * first resource record set and creates the second resource record set in a single
587          * operation. If validation for either the <code>DELETE</code> or the
588          * <code>CREATE</code> action fails, then the request is canceled, and the original
589          * <code>CNAME</code> record continues to exist.</p>  <p>If you try to delete
590          * the same resource record set more than once in a single change batch, Route 53
591          * returns an <code>InvalidChangeBatch</code> error.</p>  <p> <b>Traffic
592          * Flow</b> </p> <p>To create resource record sets for complex routing
593          * configurations, use either the traffic flow visual editor in the Route 53
594          * console or the API actions for traffic policies and traffic policy instances.
595          * Save the configuration as a traffic policy, then associate the traffic policy
596          * with one or more domain names (such as example.com) or subdomain names (such as
597          * www.example.com), in the same hosted zone or in multiple hosted zones. You can
598          * roll back the updates if the new configuration isn't performing as expected. For
599          * more information, see <a
600          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/traffic-flow.html">Using
601          * Traffic Flow to Route DNS Traffic</a> in the <i>Amazon Route 53 Developer
602          * Guide</i>.</p> <p> <b>Create, Delete, and Upsert</b> </p> <p>Use
603          * <code>ChangeResourceRecordsSetsRequest</code> to perform the following
604          * actions:</p> <ul> <li> <p> <code>CREATE</code>: Creates a resource record set
605          * that has the specified values.</p> </li> <li> <p> <code>DELETE</code>: Deletes
606          * an existing resource record set that has the specified values.</p> </li> <li>
607          * <p> <code>UPSERT</code>: If a resource record set does not already exist, Amazon
608          * Web Services creates it. If a resource set does exist, Route 53 updates it with
609          * the values in the request. </p> </li> </ul> <p> <b>Syntaxes for Creating,
610          * Updating, and Deleting Resource Record Sets</b> </p> <p>The syntax for a request
611          * depends on the type of resource record set that you want to create, delete, or
612          * update, such as weighted, alias, or failover. The XML elements in your request
613          * must appear in the order listed in the syntax. </p> <p>For an example for each
614          * type of resource record set, see "Examples."</p> <p>Don't refer to the syntax in
615          * the "Parameter Syntax" section, which includes all of the elements for every
616          * kind of resource record set that you can create, delete, or update by using
617          * <code>ChangeResourceRecordSets</code>. </p> <p> <b>Change Propagation to Route
618          * 53 DNS Servers</b> </p> <p>When you submit a
619          * <code>ChangeResourceRecordSets</code> request, Route 53 propagates your changes
620          * to all of the Route 53 authoritative DNS servers. While your changes are
621          * propagating, <code>GetChange</code> returns a status of <code>PENDING</code>.
622          * When propagation is complete, <code>GetChange</code> returns a status of
623          * <code>INSYNC</code>. Changes generally propagate to all Route 53 name servers
624          * within 60 seconds. For more information, see <a
625          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a>.</p>
626          * <p> <b>Limits on ChangeResourceRecordSets Requests</b> </p> <p>For information
627          * about the limits on a <code>ChangeResourceRecordSets</code> request, see <a
628          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
629          * in the <i>Amazon Route 53 Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
630          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeResourceRecordSets">AWS
631          * API Reference</a></p>
632          *
633          * returns a future to the operation so that it can be executed in parallel to other requests.
634          */
635         virtual Model::ChangeResourceRecordSetsOutcomeCallable ChangeResourceRecordSetsCallable(const Model::ChangeResourceRecordSetsRequest& request) const;
636 
637         /**
638          * <p>Creates, changes, or deletes a resource record set, which contains
639          * authoritative DNS information for a specified domain name or subdomain name. For
640          * example, you can use <code>ChangeResourceRecordSets</code> to create a resource
641          * record set that routes traffic for test.example.com to a web server that has an
642          * IP address of 192.0.2.44.</p> <p> <b>Deleting Resource Record Sets</b> </p>
643          * <p>To delete a resource record set, you must specify all the same values that
644          * you specified when you created it.</p> <p> <b>Change Batches and Transactional
645          * Changes</b> </p> <p>The request body must include a document with a
646          * <code>ChangeResourceRecordSetsRequest</code> element. The request body contains
647          * a list of change items, known as a change batch. Change batches are considered
648          * transactional changes. Route 53 validates the changes in the request and then
649          * either makes all or none of the changes in the change batch request. This
650          * ensures that DNS routing isn't adversely affected by partial changes to the
651          * resource record sets in a hosted zone. </p> <p>For example, suppose a change
652          * batch request contains two changes: it deletes the <code>CNAME</code> resource
653          * record set for www.example.com and creates an alias resource record set for
654          * www.example.com. If validation for both records succeeds, Route 53 deletes the
655          * first resource record set and creates the second resource record set in a single
656          * operation. If validation for either the <code>DELETE</code> or the
657          * <code>CREATE</code> action fails, then the request is canceled, and the original
658          * <code>CNAME</code> record continues to exist.</p>  <p>If you try to delete
659          * the same resource record set more than once in a single change batch, Route 53
660          * returns an <code>InvalidChangeBatch</code> error.</p>  <p> <b>Traffic
661          * Flow</b> </p> <p>To create resource record sets for complex routing
662          * configurations, use either the traffic flow visual editor in the Route 53
663          * console or the API actions for traffic policies and traffic policy instances.
664          * Save the configuration as a traffic policy, then associate the traffic policy
665          * with one or more domain names (such as example.com) or subdomain names (such as
666          * www.example.com), in the same hosted zone or in multiple hosted zones. You can
667          * roll back the updates if the new configuration isn't performing as expected. For
668          * more information, see <a
669          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/traffic-flow.html">Using
670          * Traffic Flow to Route DNS Traffic</a> in the <i>Amazon Route 53 Developer
671          * Guide</i>.</p> <p> <b>Create, Delete, and Upsert</b> </p> <p>Use
672          * <code>ChangeResourceRecordsSetsRequest</code> to perform the following
673          * actions:</p> <ul> <li> <p> <code>CREATE</code>: Creates a resource record set
674          * that has the specified values.</p> </li> <li> <p> <code>DELETE</code>: Deletes
675          * an existing resource record set that has the specified values.</p> </li> <li>
676          * <p> <code>UPSERT</code>: If a resource record set does not already exist, Amazon
677          * Web Services creates it. If a resource set does exist, Route 53 updates it with
678          * the values in the request. </p> </li> </ul> <p> <b>Syntaxes for Creating,
679          * Updating, and Deleting Resource Record Sets</b> </p> <p>The syntax for a request
680          * depends on the type of resource record set that you want to create, delete, or
681          * update, such as weighted, alias, or failover. The XML elements in your request
682          * must appear in the order listed in the syntax. </p> <p>For an example for each
683          * type of resource record set, see "Examples."</p> <p>Don't refer to the syntax in
684          * the "Parameter Syntax" section, which includes all of the elements for every
685          * kind of resource record set that you can create, delete, or update by using
686          * <code>ChangeResourceRecordSets</code>. </p> <p> <b>Change Propagation to Route
687          * 53 DNS Servers</b> </p> <p>When you submit a
688          * <code>ChangeResourceRecordSets</code> request, Route 53 propagates your changes
689          * to all of the Route 53 authoritative DNS servers. While your changes are
690          * propagating, <code>GetChange</code> returns a status of <code>PENDING</code>.
691          * When propagation is complete, <code>GetChange</code> returns a status of
692          * <code>INSYNC</code>. Changes generally propagate to all Route 53 name servers
693          * within 60 seconds. For more information, see <a
694          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html">GetChange</a>.</p>
695          * <p> <b>Limits on ChangeResourceRecordSets Requests</b> </p> <p>For information
696          * about the limits on a <code>ChangeResourceRecordSets</code> request, see <a
697          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
698          * in the <i>Amazon Route 53 Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
699          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeResourceRecordSets">AWS
700          * API Reference</a></p>
701          *
702          * Queues the request into a thread executor and triggers associated callback when operation has finished.
703          */
704         virtual void ChangeResourceRecordSetsAsync(const Model::ChangeResourceRecordSetsRequest& request, const ChangeResourceRecordSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
705 
706         /**
707          * <p>Adds, edits, or deletes tags for a health check or a hosted zone.</p> <p>For
708          * information about using tags for cost allocation, see <a
709          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using
710          * Cost Allocation Tags</a> in the <i>Billing and Cost Management User
711          * Guide</i>.</p><p><h3>See Also:</h3>   <a
712          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeTagsForResource">AWS
713          * API Reference</a></p>
714          */
715         virtual Model::ChangeTagsForResourceOutcome ChangeTagsForResource(const Model::ChangeTagsForResourceRequest& request) const;
716 
717         /**
718          * <p>Adds, edits, or deletes tags for a health check or a hosted zone.</p> <p>For
719          * information about using tags for cost allocation, see <a
720          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using
721          * Cost Allocation Tags</a> in the <i>Billing and Cost Management User
722          * Guide</i>.</p><p><h3>See Also:</h3>   <a
723          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeTagsForResource">AWS
724          * API Reference</a></p>
725          *
726          * returns a future to the operation so that it can be executed in parallel to other requests.
727          */
728         virtual Model::ChangeTagsForResourceOutcomeCallable ChangeTagsForResourceCallable(const Model::ChangeTagsForResourceRequest& request) const;
729 
730         /**
731          * <p>Adds, edits, or deletes tags for a health check or a hosted zone.</p> <p>For
732          * information about using tags for cost allocation, see <a
733          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using
734          * Cost Allocation Tags</a> in the <i>Billing and Cost Management User
735          * Guide</i>.</p><p><h3>See Also:</h3>   <a
736          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeTagsForResource">AWS
737          * API Reference</a></p>
738          *
739          * Queues the request into a thread executor and triggers associated callback when operation has finished.
740          */
741         virtual void ChangeTagsForResourceAsync(const Model::ChangeTagsForResourceRequest& request, const ChangeTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
742 
743         /**
744          * <p>Creates a new health check.</p> <p>For information about adding health checks
745          * to resource record sets, see <a
746          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResourceRecordSet.html#Route53-Type-ResourceRecordSet-HealthCheckId">HealthCheckId</a>
747          * in <a
748          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html">ChangeResourceRecordSets</a>.
749          * </p> <p> <b>ELB Load Balancers</b> </p> <p>If you're registering EC2 instances
750          * with an Elastic Load Balancing (ELB) load balancer, do not create Amazon Route
751          * 53 health checks for the EC2 instances. When you register an EC2 instance with a
752          * load balancer, you configure settings for an ELB health check, which performs a
753          * similar function to a Route 53 health check.</p> <p> <b>Private Hosted Zones</b>
754          * </p> <p>You can associate health checks with failover resource record sets in a
755          * private hosted zone. Note the following:</p> <ul> <li> <p>Route 53 health
756          * checkers are outside the VPC. To check the health of an endpoint within a VPC by
757          * IP address, you must assign a public IP address to the instance in the VPC.</p>
758          * </li> <li> <p>You can configure a health checker to check the health of an
759          * external resource that the instance relies on, such as a database server.</p>
760          * </li> <li> <p>You can create a CloudWatch metric, associate an alarm with the
761          * metric, and then create a health check that is based on the state of the alarm.
762          * For example, you might create a CloudWatch metric that checks the status of the
763          * Amazon EC2 <code>StatusCheckFailed</code> metric, add an alarm to the metric,
764          * and then create a health check that is based on the state of the alarm. For
765          * information about creating CloudWatch metrics and alarms by using the CloudWatch
766          * console, see the <a
767          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html">Amazon
768          * CloudWatch User Guide</a>.</p> </li> </ul><p><h3>See Also:</h3>   <a
769          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHealthCheck">AWS
770          * API Reference</a></p>
771          */
772         virtual Model::CreateHealthCheckOutcome CreateHealthCheck(const Model::CreateHealthCheckRequest& request) const;
773 
774         /**
775          * <p>Creates a new health check.</p> <p>For information about adding health checks
776          * to resource record sets, see <a
777          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResourceRecordSet.html#Route53-Type-ResourceRecordSet-HealthCheckId">HealthCheckId</a>
778          * in <a
779          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html">ChangeResourceRecordSets</a>.
780          * </p> <p> <b>ELB Load Balancers</b> </p> <p>If you're registering EC2 instances
781          * with an Elastic Load Balancing (ELB) load balancer, do not create Amazon Route
782          * 53 health checks for the EC2 instances. When you register an EC2 instance with a
783          * load balancer, you configure settings for an ELB health check, which performs a
784          * similar function to a Route 53 health check.</p> <p> <b>Private Hosted Zones</b>
785          * </p> <p>You can associate health checks with failover resource record sets in a
786          * private hosted zone. Note the following:</p> <ul> <li> <p>Route 53 health
787          * checkers are outside the VPC. To check the health of an endpoint within a VPC by
788          * IP address, you must assign a public IP address to the instance in the VPC.</p>
789          * </li> <li> <p>You can configure a health checker to check the health of an
790          * external resource that the instance relies on, such as a database server.</p>
791          * </li> <li> <p>You can create a CloudWatch metric, associate an alarm with the
792          * metric, and then create a health check that is based on the state of the alarm.
793          * For example, you might create a CloudWatch metric that checks the status of the
794          * Amazon EC2 <code>StatusCheckFailed</code> metric, add an alarm to the metric,
795          * and then create a health check that is based on the state of the alarm. For
796          * information about creating CloudWatch metrics and alarms by using the CloudWatch
797          * console, see the <a
798          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html">Amazon
799          * CloudWatch User Guide</a>.</p> </li> </ul><p><h3>See Also:</h3>   <a
800          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHealthCheck">AWS
801          * API Reference</a></p>
802          *
803          * returns a future to the operation so that it can be executed in parallel to other requests.
804          */
805         virtual Model::CreateHealthCheckOutcomeCallable CreateHealthCheckCallable(const Model::CreateHealthCheckRequest& request) const;
806 
807         /**
808          * <p>Creates a new health check.</p> <p>For information about adding health checks
809          * to resource record sets, see <a
810          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResourceRecordSet.html#Route53-Type-ResourceRecordSet-HealthCheckId">HealthCheckId</a>
811          * in <a
812          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html">ChangeResourceRecordSets</a>.
813          * </p> <p> <b>ELB Load Balancers</b> </p> <p>If you're registering EC2 instances
814          * with an Elastic Load Balancing (ELB) load balancer, do not create Amazon Route
815          * 53 health checks for the EC2 instances. When you register an EC2 instance with a
816          * load balancer, you configure settings for an ELB health check, which performs a
817          * similar function to a Route 53 health check.</p> <p> <b>Private Hosted Zones</b>
818          * </p> <p>You can associate health checks with failover resource record sets in a
819          * private hosted zone. Note the following:</p> <ul> <li> <p>Route 53 health
820          * checkers are outside the VPC. To check the health of an endpoint within a VPC by
821          * IP address, you must assign a public IP address to the instance in the VPC.</p>
822          * </li> <li> <p>You can configure a health checker to check the health of an
823          * external resource that the instance relies on, such as a database server.</p>
824          * </li> <li> <p>You can create a CloudWatch metric, associate an alarm with the
825          * metric, and then create a health check that is based on the state of the alarm.
826          * For example, you might create a CloudWatch metric that checks the status of the
827          * Amazon EC2 <code>StatusCheckFailed</code> metric, add an alarm to the metric,
828          * and then create a health check that is based on the state of the alarm. For
829          * information about creating CloudWatch metrics and alarms by using the CloudWatch
830          * console, see the <a
831          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html">Amazon
832          * CloudWatch User Guide</a>.</p> </li> </ul><p><h3>See Also:</h3>   <a
833          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHealthCheck">AWS
834          * API Reference</a></p>
835          *
836          * Queues the request into a thread executor and triggers associated callback when operation has finished.
837          */
838         virtual void CreateHealthCheckAsync(const Model::CreateHealthCheckRequest& request, const CreateHealthCheckResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
839 
840         /**
841          * <p>Creates a new public or private hosted zone. You create records in a public
842          * hosted zone to define how you want to route traffic on the internet for a
843          * domain, such as example.com, and its subdomains (apex.example.com,
844          * acme.example.com). You create records in a private hosted zone to define how you
845          * want to route traffic for a domain and its subdomains within one or more Amazon
846          * Virtual Private Clouds (Amazon VPCs). </p>  <p>You can't convert a
847          * public hosted zone to a private hosted zone or vice versa. Instead, you must
848          * create a new hosted zone with the same name and create new resource record
849          * sets.</p>  <p>For more information about charges for hosted zones,
850          * see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53
851          * Pricing</a>.</p> <p>Note the following:</p> <ul> <li> <p>You can't create a
852          * hosted zone for a top-level domain (TLD) such as .com.</p> </li> <li> <p>For
853          * public hosted zones, Route 53 automatically creates a default SOA record and
854          * four NS records for the zone. For more information about SOA and NS records, see
855          * <a
856          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/SOA-NSrecords.html">NS
857          * and SOA Records that Route 53 Creates for a Hosted Zone</a> in the <i>Amazon
858          * Route 53 Developer Guide</i>.</p> <p>If you want to use the same name servers
859          * for multiple public hosted zones, you can optionally associate a reusable
860          * delegation set with the hosted zone. See the <code>DelegationSetId</code>
861          * element.</p> </li> <li> <p>If your domain is registered with a registrar other
862          * than Route 53, you must update the name servers with your registrar to make
863          * Route 53 the DNS service for the domain. For more information, see <a
864          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html">Migrating
865          * DNS Service for an Existing Domain to Amazon Route 53</a> in the <i>Amazon Route
866          * 53 Developer Guide</i>. </p> </li> </ul> <p>When you submit a
867          * <code>CreateHostedZone</code> request, the initial status of the hosted zone is
868          * <code>PENDING</code>. For public hosted zones, this means that the NS and SOA
869          * records are not yet available on all Route 53 DNS servers. When the NS and SOA
870          * records are available, the status of the zone changes to
871          * <code>INSYNC</code>.</p> <p>The <code>CreateHostedZone</code> request requires
872          * the caller to have an <code>ec2:DescribeVpcs</code> permission.</p><p><h3>See
873          * Also:</h3>   <a
874          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHostedZone">AWS
875          * API Reference</a></p>
876          */
877         virtual Model::CreateHostedZoneOutcome CreateHostedZone(const Model::CreateHostedZoneRequest& request) const;
878 
879         /**
880          * <p>Creates a new public or private hosted zone. You create records in a public
881          * hosted zone to define how you want to route traffic on the internet for a
882          * domain, such as example.com, and its subdomains (apex.example.com,
883          * acme.example.com). You create records in a private hosted zone to define how you
884          * want to route traffic for a domain and its subdomains within one or more Amazon
885          * Virtual Private Clouds (Amazon VPCs). </p>  <p>You can't convert a
886          * public hosted zone to a private hosted zone or vice versa. Instead, you must
887          * create a new hosted zone with the same name and create new resource record
888          * sets.</p>  <p>For more information about charges for hosted zones,
889          * see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53
890          * Pricing</a>.</p> <p>Note the following:</p> <ul> <li> <p>You can't create a
891          * hosted zone for a top-level domain (TLD) such as .com.</p> </li> <li> <p>For
892          * public hosted zones, Route 53 automatically creates a default SOA record and
893          * four NS records for the zone. For more information about SOA and NS records, see
894          * <a
895          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/SOA-NSrecords.html">NS
896          * and SOA Records that Route 53 Creates for a Hosted Zone</a> in the <i>Amazon
897          * Route 53 Developer Guide</i>.</p> <p>If you want to use the same name servers
898          * for multiple public hosted zones, you can optionally associate a reusable
899          * delegation set with the hosted zone. See the <code>DelegationSetId</code>
900          * element.</p> </li> <li> <p>If your domain is registered with a registrar other
901          * than Route 53, you must update the name servers with your registrar to make
902          * Route 53 the DNS service for the domain. For more information, see <a
903          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html">Migrating
904          * DNS Service for an Existing Domain to Amazon Route 53</a> in the <i>Amazon Route
905          * 53 Developer Guide</i>. </p> </li> </ul> <p>When you submit a
906          * <code>CreateHostedZone</code> request, the initial status of the hosted zone is
907          * <code>PENDING</code>. For public hosted zones, this means that the NS and SOA
908          * records are not yet available on all Route 53 DNS servers. When the NS and SOA
909          * records are available, the status of the zone changes to
910          * <code>INSYNC</code>.</p> <p>The <code>CreateHostedZone</code> request requires
911          * the caller to have an <code>ec2:DescribeVpcs</code> permission.</p><p><h3>See
912          * Also:</h3>   <a
913          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHostedZone">AWS
914          * API Reference</a></p>
915          *
916          * returns a future to the operation so that it can be executed in parallel to other requests.
917          */
918         virtual Model::CreateHostedZoneOutcomeCallable CreateHostedZoneCallable(const Model::CreateHostedZoneRequest& request) const;
919 
920         /**
921          * <p>Creates a new public or private hosted zone. You create records in a public
922          * hosted zone to define how you want to route traffic on the internet for a
923          * domain, such as example.com, and its subdomains (apex.example.com,
924          * acme.example.com). You create records in a private hosted zone to define how you
925          * want to route traffic for a domain and its subdomains within one or more Amazon
926          * Virtual Private Clouds (Amazon VPCs). </p>  <p>You can't convert a
927          * public hosted zone to a private hosted zone or vice versa. Instead, you must
928          * create a new hosted zone with the same name and create new resource record
929          * sets.</p>  <p>For more information about charges for hosted zones,
930          * see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53
931          * Pricing</a>.</p> <p>Note the following:</p> <ul> <li> <p>You can't create a
932          * hosted zone for a top-level domain (TLD) such as .com.</p> </li> <li> <p>For
933          * public hosted zones, Route 53 automatically creates a default SOA record and
934          * four NS records for the zone. For more information about SOA and NS records, see
935          * <a
936          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/SOA-NSrecords.html">NS
937          * and SOA Records that Route 53 Creates for a Hosted Zone</a> in the <i>Amazon
938          * Route 53 Developer Guide</i>.</p> <p>If you want to use the same name servers
939          * for multiple public hosted zones, you can optionally associate a reusable
940          * delegation set with the hosted zone. See the <code>DelegationSetId</code>
941          * element.</p> </li> <li> <p>If your domain is registered with a registrar other
942          * than Route 53, you must update the name servers with your registrar to make
943          * Route 53 the DNS service for the domain. For more information, see <a
944          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html">Migrating
945          * DNS Service for an Existing Domain to Amazon Route 53</a> in the <i>Amazon Route
946          * 53 Developer Guide</i>. </p> </li> </ul> <p>When you submit a
947          * <code>CreateHostedZone</code> request, the initial status of the hosted zone is
948          * <code>PENDING</code>. For public hosted zones, this means that the NS and SOA
949          * records are not yet available on all Route 53 DNS servers. When the NS and SOA
950          * records are available, the status of the zone changes to
951          * <code>INSYNC</code>.</p> <p>The <code>CreateHostedZone</code> request requires
952          * the caller to have an <code>ec2:DescribeVpcs</code> permission.</p><p><h3>See
953          * Also:</h3>   <a
954          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHostedZone">AWS
955          * API Reference</a></p>
956          *
957          * Queues the request into a thread executor and triggers associated callback when operation has finished.
958          */
959         virtual void CreateHostedZoneAsync(const Model::CreateHostedZoneRequest& request, const CreateHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
960 
961         /**
962          * <p>Creates a new key-signing key (KSK) associated with a hosted zone. You can
963          * only have two KSKs per hosted zone.</p><p><h3>See Also:</h3>   <a
964          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateKeySigningKey">AWS
965          * API Reference</a></p>
966          */
967         virtual Model::CreateKeySigningKeyOutcome CreateKeySigningKey(const Model::CreateKeySigningKeyRequest& request) const;
968 
969         /**
970          * <p>Creates a new key-signing key (KSK) associated with a hosted zone. You can
971          * only have two KSKs per hosted zone.</p><p><h3>See Also:</h3>   <a
972          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateKeySigningKey">AWS
973          * API Reference</a></p>
974          *
975          * returns a future to the operation so that it can be executed in parallel to other requests.
976          */
977         virtual Model::CreateKeySigningKeyOutcomeCallable CreateKeySigningKeyCallable(const Model::CreateKeySigningKeyRequest& request) const;
978 
979         /**
980          * <p>Creates a new key-signing key (KSK) associated with a hosted zone. You can
981          * only have two KSKs per hosted zone.</p><p><h3>See Also:</h3>   <a
982          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateKeySigningKey">AWS
983          * API Reference</a></p>
984          *
985          * Queues the request into a thread executor and triggers associated callback when operation has finished.
986          */
987         virtual void CreateKeySigningKeyAsync(const Model::CreateKeySigningKeyRequest& request, const CreateKeySigningKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
988 
989         /**
990          * <p>Creates a configuration for DNS query logging. After you create a query
991          * logging configuration, Amazon Route 53 begins to publish log data to an Amazon
992          * CloudWatch Logs log group.</p> <p>DNS query logs contain information about the
993          * queries that Route 53 receives for a specified public hosted zone, such as the
994          * following:</p> <ul> <li> <p>Route 53 edge location that responded to the DNS
995          * query</p> </li> <li> <p>Domain or subdomain that was requested</p> </li> <li>
996          * <p>DNS record type, such as A or AAAA</p> </li> <li> <p>DNS response code, such
997          * as <code>NoError</code> or <code>ServFail</code> </p> </li> </ul> <dl> <dt>Log
998          * Group and Resource Policy</dt> <dd> <p>Before you create a query logging
999          * configuration, perform the following operations.</p>  <p>If you create a
1000          * query logging configuration using the Route 53 console, Route 53 performs these
1001          * operations automatically.</p>  <ol> <li> <p>Create a CloudWatch Logs log
1002          * group, and make note of the ARN, which you specify when you create a query
1003          * logging configuration. Note the following:</p> <ul> <li> <p>You must create the
1004          * log group in the us-east-1 region.</p> </li> <li> <p>You must use the same
1005          * Amazon Web Services account to create the log group and the hosted zone that you
1006          * want to configure query logging for.</p> </li> <li> <p>When you create log
1007          * groups for query logging, we recommend that you use a consistent prefix, for
1008          * example:</p> <p> <code>/aws/route53/<i>hosted zone name</i> </code> </p> <p>In
1009          * the next step, you'll create a resource policy, which controls access to one or
1010          * more log groups and the associated Amazon Web Services resources, such as Route
1011          * 53 hosted zones. There's a limit on the number of resource policies that you can
1012          * create, so we recommend that you use a consistent prefix so you can use the same
1013          * resource policy for all the log groups that you create for query logging.</p>
1014          * </li> </ul> </li> <li> <p>Create a CloudWatch Logs resource policy, and give it
1015          * the permissions that Route 53 needs to create log streams and to send query logs
1016          * to log streams. For the value of <code>Resource</code>, specify the ARN for the
1017          * log group that you created in the previous step. To use the same resource policy
1018          * for all the CloudWatch Logs log groups that you created for query logging
1019          * configurations, replace the hosted zone name with <code>*</code>, for
1020          * example:</p> <p>
1021          * <code>arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *</code> </p>
1022          *  <p>You can't use the CloudWatch console to create or edit a resource
1023          * policy. You must use the CloudWatch API, one of the Amazon Web Services SDKs, or
1024          * the CLI.</p>  </li> </ol> </dd> <dt>Log Streams and Edge Locations</dt>
1025          * <dd> <p>When Route 53 finishes creating the configuration for DNS query logging,
1026          * it does the following:</p> <ul> <li> <p>Creates a log stream for an edge
1027          * location the first time that the edge location responds to DNS queries for the
1028          * specified hosted zone. That log stream is used to log all queries that Route 53
1029          * responds to for that edge location.</p> </li> <li> <p>Begins to send query logs
1030          * to the applicable log stream.</p> </li> </ul> <p>The name of each log stream is
1031          * in the following format:</p> <p> <code> <i>hosted zone ID</i>/<i>edge location
1032          * code</i> </code> </p> <p>The edge location code is a three-letter code and an
1033          * arbitrarily assigned number, for example, DFW3. The three-letter code typically
1034          * corresponds with the International Air Transport Association airport code for an
1035          * airport near the edge location. (These abbreviations might change in the
1036          * future.) For a list of edge locations, see "The Route 53 Global Network" on the
1037          * <a href="http://aws.amazon.com/route53/details/">Route 53 Product Details</a>
1038          * page.</p> </dd> <dt>Queries That Are Logged</dt> <dd> <p>Query logs contain only
1039          * the queries that DNS resolvers forward to Route 53. If a DNS resolver has
1040          * already cached the response to a query (such as the IP address for a load
1041          * balancer for example.com), the resolver will continue to return the cached
1042          * response. It doesn't forward another query to Route 53 until the TTL for the
1043          * corresponding resource record set expires. Depending on how many DNS queries are
1044          * submitted for a resource record set, and depending on the TTL for that resource
1045          * record set, query logs might contain information about only one query out of
1046          * every several thousand queries that are submitted to DNS. For more information
1047          * about how DNS works, see <a
1048          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/welcome-dns-service.html">Routing
1049          * Internet Traffic to Your Website or Web Application</a> in the <i>Amazon Route
1050          * 53 Developer Guide</i>.</p> </dd> <dt>Log File Format</dt> <dd> <p>For a list of
1051          * the values in each query log and the format of each value, see <a
1052          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging
1053          * DNS Queries</a> in the <i>Amazon Route 53 Developer Guide</i>.</p> </dd>
1054          * <dt>Pricing</dt> <dd> <p>For information about charges for query logs, see <a
1055          * href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch
1056          * Pricing</a>.</p> </dd> <dt>How to Stop Logging</dt> <dd> <p>If you want Route 53
1057          * to stop sending query logs to CloudWatch Logs, delete the query logging
1058          * configuration. For more information, see <a
1059          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteQueryLoggingConfig.html">DeleteQueryLoggingConfig</a>.</p>
1060          * </dd> </dl><p><h3>See Also:</h3>   <a
1061          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateQueryLoggingConfig">AWS
1062          * API Reference</a></p>
1063          */
1064         virtual Model::CreateQueryLoggingConfigOutcome CreateQueryLoggingConfig(const Model::CreateQueryLoggingConfigRequest& request) const;
1065 
1066         /**
1067          * <p>Creates a configuration for DNS query logging. After you create a query
1068          * logging configuration, Amazon Route 53 begins to publish log data to an Amazon
1069          * CloudWatch Logs log group.</p> <p>DNS query logs contain information about the
1070          * queries that Route 53 receives for a specified public hosted zone, such as the
1071          * following:</p> <ul> <li> <p>Route 53 edge location that responded to the DNS
1072          * query</p> </li> <li> <p>Domain or subdomain that was requested</p> </li> <li>
1073          * <p>DNS record type, such as A or AAAA</p> </li> <li> <p>DNS response code, such
1074          * as <code>NoError</code> or <code>ServFail</code> </p> </li> </ul> <dl> <dt>Log
1075          * Group and Resource Policy</dt> <dd> <p>Before you create a query logging
1076          * configuration, perform the following operations.</p>  <p>If you create a
1077          * query logging configuration using the Route 53 console, Route 53 performs these
1078          * operations automatically.</p>  <ol> <li> <p>Create a CloudWatch Logs log
1079          * group, and make note of the ARN, which you specify when you create a query
1080          * logging configuration. Note the following:</p> <ul> <li> <p>You must create the
1081          * log group in the us-east-1 region.</p> </li> <li> <p>You must use the same
1082          * Amazon Web Services account to create the log group and the hosted zone that you
1083          * want to configure query logging for.</p> </li> <li> <p>When you create log
1084          * groups for query logging, we recommend that you use a consistent prefix, for
1085          * example:</p> <p> <code>/aws/route53/<i>hosted zone name</i> </code> </p> <p>In
1086          * the next step, you'll create a resource policy, which controls access to one or
1087          * more log groups and the associated Amazon Web Services resources, such as Route
1088          * 53 hosted zones. There's a limit on the number of resource policies that you can
1089          * create, so we recommend that you use a consistent prefix so you can use the same
1090          * resource policy for all the log groups that you create for query logging.</p>
1091          * </li> </ul> </li> <li> <p>Create a CloudWatch Logs resource policy, and give it
1092          * the permissions that Route 53 needs to create log streams and to send query logs
1093          * to log streams. For the value of <code>Resource</code>, specify the ARN for the
1094          * log group that you created in the previous step. To use the same resource policy
1095          * for all the CloudWatch Logs log groups that you created for query logging
1096          * configurations, replace the hosted zone name with <code>*</code>, for
1097          * example:</p> <p>
1098          * <code>arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *</code> </p>
1099          *  <p>You can't use the CloudWatch console to create or edit a resource
1100          * policy. You must use the CloudWatch API, one of the Amazon Web Services SDKs, or
1101          * the CLI.</p>  </li> </ol> </dd> <dt>Log Streams and Edge Locations</dt>
1102          * <dd> <p>When Route 53 finishes creating the configuration for DNS query logging,
1103          * it does the following:</p> <ul> <li> <p>Creates a log stream for an edge
1104          * location the first time that the edge location responds to DNS queries for the
1105          * specified hosted zone. That log stream is used to log all queries that Route 53
1106          * responds to for that edge location.</p> </li> <li> <p>Begins to send query logs
1107          * to the applicable log stream.</p> </li> </ul> <p>The name of each log stream is
1108          * in the following format:</p> <p> <code> <i>hosted zone ID</i>/<i>edge location
1109          * code</i> </code> </p> <p>The edge location code is a three-letter code and an
1110          * arbitrarily assigned number, for example, DFW3. The three-letter code typically
1111          * corresponds with the International Air Transport Association airport code for an
1112          * airport near the edge location. (These abbreviations might change in the
1113          * future.) For a list of edge locations, see "The Route 53 Global Network" on the
1114          * <a href="http://aws.amazon.com/route53/details/">Route 53 Product Details</a>
1115          * page.</p> </dd> <dt>Queries That Are Logged</dt> <dd> <p>Query logs contain only
1116          * the queries that DNS resolvers forward to Route 53. If a DNS resolver has
1117          * already cached the response to a query (such as the IP address for a load
1118          * balancer for example.com), the resolver will continue to return the cached
1119          * response. It doesn't forward another query to Route 53 until the TTL for the
1120          * corresponding resource record set expires. Depending on how many DNS queries are
1121          * submitted for a resource record set, and depending on the TTL for that resource
1122          * record set, query logs might contain information about only one query out of
1123          * every several thousand queries that are submitted to DNS. For more information
1124          * about how DNS works, see <a
1125          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/welcome-dns-service.html">Routing
1126          * Internet Traffic to Your Website or Web Application</a> in the <i>Amazon Route
1127          * 53 Developer Guide</i>.</p> </dd> <dt>Log File Format</dt> <dd> <p>For a list of
1128          * the values in each query log and the format of each value, see <a
1129          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging
1130          * DNS Queries</a> in the <i>Amazon Route 53 Developer Guide</i>.</p> </dd>
1131          * <dt>Pricing</dt> <dd> <p>For information about charges for query logs, see <a
1132          * href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch
1133          * Pricing</a>.</p> </dd> <dt>How to Stop Logging</dt> <dd> <p>If you want Route 53
1134          * to stop sending query logs to CloudWatch Logs, delete the query logging
1135          * configuration. For more information, see <a
1136          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteQueryLoggingConfig.html">DeleteQueryLoggingConfig</a>.</p>
1137          * </dd> </dl><p><h3>See Also:</h3>   <a
1138          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateQueryLoggingConfig">AWS
1139          * API Reference</a></p>
1140          *
1141          * returns a future to the operation so that it can be executed in parallel to other requests.
1142          */
1143         virtual Model::CreateQueryLoggingConfigOutcomeCallable CreateQueryLoggingConfigCallable(const Model::CreateQueryLoggingConfigRequest& request) const;
1144 
1145         /**
1146          * <p>Creates a configuration for DNS query logging. After you create a query
1147          * logging configuration, Amazon Route 53 begins to publish log data to an Amazon
1148          * CloudWatch Logs log group.</p> <p>DNS query logs contain information about the
1149          * queries that Route 53 receives for a specified public hosted zone, such as the
1150          * following:</p> <ul> <li> <p>Route 53 edge location that responded to the DNS
1151          * query</p> </li> <li> <p>Domain or subdomain that was requested</p> </li> <li>
1152          * <p>DNS record type, such as A or AAAA</p> </li> <li> <p>DNS response code, such
1153          * as <code>NoError</code> or <code>ServFail</code> </p> </li> </ul> <dl> <dt>Log
1154          * Group and Resource Policy</dt> <dd> <p>Before you create a query logging
1155          * configuration, perform the following operations.</p>  <p>If you create a
1156          * query logging configuration using the Route 53 console, Route 53 performs these
1157          * operations automatically.</p>  <ol> <li> <p>Create a CloudWatch Logs log
1158          * group, and make note of the ARN, which you specify when you create a query
1159          * logging configuration. Note the following:</p> <ul> <li> <p>You must create the
1160          * log group in the us-east-1 region.</p> </li> <li> <p>You must use the same
1161          * Amazon Web Services account to create the log group and the hosted zone that you
1162          * want to configure query logging for.</p> </li> <li> <p>When you create log
1163          * groups for query logging, we recommend that you use a consistent prefix, for
1164          * example:</p> <p> <code>/aws/route53/<i>hosted zone name</i> </code> </p> <p>In
1165          * the next step, you'll create a resource policy, which controls access to one or
1166          * more log groups and the associated Amazon Web Services resources, such as Route
1167          * 53 hosted zones. There's a limit on the number of resource policies that you can
1168          * create, so we recommend that you use a consistent prefix so you can use the same
1169          * resource policy for all the log groups that you create for query logging.</p>
1170          * </li> </ul> </li> <li> <p>Create a CloudWatch Logs resource policy, and give it
1171          * the permissions that Route 53 needs to create log streams and to send query logs
1172          * to log streams. For the value of <code>Resource</code>, specify the ARN for the
1173          * log group that you created in the previous step. To use the same resource policy
1174          * for all the CloudWatch Logs log groups that you created for query logging
1175          * configurations, replace the hosted zone name with <code>*</code>, for
1176          * example:</p> <p>
1177          * <code>arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/ *</code> </p>
1178          *  <p>You can't use the CloudWatch console to create or edit a resource
1179          * policy. You must use the CloudWatch API, one of the Amazon Web Services SDKs, or
1180          * the CLI.</p>  </li> </ol> </dd> <dt>Log Streams and Edge Locations</dt>
1181          * <dd> <p>When Route 53 finishes creating the configuration for DNS query logging,
1182          * it does the following:</p> <ul> <li> <p>Creates a log stream for an edge
1183          * location the first time that the edge location responds to DNS queries for the
1184          * specified hosted zone. That log stream is used to log all queries that Route 53
1185          * responds to for that edge location.</p> </li> <li> <p>Begins to send query logs
1186          * to the applicable log stream.</p> </li> </ul> <p>The name of each log stream is
1187          * in the following format:</p> <p> <code> <i>hosted zone ID</i>/<i>edge location
1188          * code</i> </code> </p> <p>The edge location code is a three-letter code and an
1189          * arbitrarily assigned number, for example, DFW3. The three-letter code typically
1190          * corresponds with the International Air Transport Association airport code for an
1191          * airport near the edge location. (These abbreviations might change in the
1192          * future.) For a list of edge locations, see "The Route 53 Global Network" on the
1193          * <a href="http://aws.amazon.com/route53/details/">Route 53 Product Details</a>
1194          * page.</p> </dd> <dt>Queries That Are Logged</dt> <dd> <p>Query logs contain only
1195          * the queries that DNS resolvers forward to Route 53. If a DNS resolver has
1196          * already cached the response to a query (such as the IP address for a load
1197          * balancer for example.com), the resolver will continue to return the cached
1198          * response. It doesn't forward another query to Route 53 until the TTL for the
1199          * corresponding resource record set expires. Depending on how many DNS queries are
1200          * submitted for a resource record set, and depending on the TTL for that resource
1201          * record set, query logs might contain information about only one query out of
1202          * every several thousand queries that are submitted to DNS. For more information
1203          * about how DNS works, see <a
1204          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/welcome-dns-service.html">Routing
1205          * Internet Traffic to Your Website or Web Application</a> in the <i>Amazon Route
1206          * 53 Developer Guide</i>.</p> </dd> <dt>Log File Format</dt> <dd> <p>For a list of
1207          * the values in each query log and the format of each value, see <a
1208          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging
1209          * DNS Queries</a> in the <i>Amazon Route 53 Developer Guide</i>.</p> </dd>
1210          * <dt>Pricing</dt> <dd> <p>For information about charges for query logs, see <a
1211          * href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch
1212          * Pricing</a>.</p> </dd> <dt>How to Stop Logging</dt> <dd> <p>If you want Route 53
1213          * to stop sending query logs to CloudWatch Logs, delete the query logging
1214          * configuration. For more information, see <a
1215          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteQueryLoggingConfig.html">DeleteQueryLoggingConfig</a>.</p>
1216          * </dd> </dl><p><h3>See Also:</h3>   <a
1217          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateQueryLoggingConfig">AWS
1218          * API Reference</a></p>
1219          *
1220          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1221          */
1222         virtual void CreateQueryLoggingConfigAsync(const Model::CreateQueryLoggingConfigRequest& request, const CreateQueryLoggingConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1223 
1224         /**
1225          * <p>Creates a delegation set (a group of four name servers) that can be reused by
1226          * multiple hosted zones that were created by the same Amazon Web Services account.
1227          * </p> <p>You can also create a reusable delegation set that uses the four name
1228          * servers that are associated with an existing hosted zone. Specify the hosted
1229          * zone ID in the <code>CreateReusableDelegationSet</code> request.</p>
1230          * <p>You can't associate a reusable delegation set with a private hosted zone.</p>
1231          *  <p>For information about using a reusable delegation set to configure
1232          * white label name servers, see <a
1233          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/white-label-name-servers.html">Configuring
1234          * White Label Name Servers</a>.</p> <p>The process for migrating existing hosted
1235          * zones to use a reusable delegation set is comparable to the process for
1236          * configuring white label name servers. You need to perform the following
1237          * steps:</p> <ol> <li> <p>Create a reusable delegation set.</p> </li> <li>
1238          * <p>Recreate hosted zones, and reduce the TTL to 60 seconds or less.</p> </li>
1239          * <li> <p>Recreate resource record sets in the new hosted zones.</p> </li> <li>
1240          * <p>Change the registrar's name servers to use the name servers for the new
1241          * hosted zones.</p> </li> <li> <p>Monitor traffic for the website or
1242          * application.</p> </li> <li> <p>Change TTLs back to their original values.</p>
1243          * </li> </ol> <p>If you want to migrate existing hosted zones to use a reusable
1244          * delegation set, the existing hosted zones can't use any of the name servers that
1245          * are assigned to the reusable delegation set. If one or more hosted zones do use
1246          * one or more name servers that are assigned to the reusable delegation set, you
1247          * can do one of the following:</p> <ul> <li> <p>For small numbers of hosted
1248          * zones—up to a few hundred—it's relatively easy to create reusable delegation
1249          * sets until you get one that has four name servers that don't overlap with any of
1250          * the name servers in your hosted zones.</p> </li> <li> <p>For larger numbers of
1251          * hosted zones, the easiest solution is to use more than one reusable delegation
1252          * set.</p> </li> <li> <p>For larger numbers of hosted zones, you can also migrate
1253          * hosted zones that have overlapping name servers to hosted zones that don't have
1254          * overlapping name servers, then migrate the hosted zones again to use the
1255          * reusable delegation set.</p> </li> </ul><p><h3>See Also:</h3>   <a
1256          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateReusableDelegationSet">AWS
1257          * API Reference</a></p>
1258          */
1259         virtual Model::CreateReusableDelegationSetOutcome CreateReusableDelegationSet(const Model::CreateReusableDelegationSetRequest& request) const;
1260 
1261         /**
1262          * <p>Creates a delegation set (a group of four name servers) that can be reused by
1263          * multiple hosted zones that were created by the same Amazon Web Services account.
1264          * </p> <p>You can also create a reusable delegation set that uses the four name
1265          * servers that are associated with an existing hosted zone. Specify the hosted
1266          * zone ID in the <code>CreateReusableDelegationSet</code> request.</p>
1267          * <p>You can't associate a reusable delegation set with a private hosted zone.</p>
1268          *  <p>For information about using a reusable delegation set to configure
1269          * white label name servers, see <a
1270          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/white-label-name-servers.html">Configuring
1271          * White Label Name Servers</a>.</p> <p>The process for migrating existing hosted
1272          * zones to use a reusable delegation set is comparable to the process for
1273          * configuring white label name servers. You need to perform the following
1274          * steps:</p> <ol> <li> <p>Create a reusable delegation set.</p> </li> <li>
1275          * <p>Recreate hosted zones, and reduce the TTL to 60 seconds or less.</p> </li>
1276          * <li> <p>Recreate resource record sets in the new hosted zones.</p> </li> <li>
1277          * <p>Change the registrar's name servers to use the name servers for the new
1278          * hosted zones.</p> </li> <li> <p>Monitor traffic for the website or
1279          * application.</p> </li> <li> <p>Change TTLs back to their original values.</p>
1280          * </li> </ol> <p>If you want to migrate existing hosted zones to use a reusable
1281          * delegation set, the existing hosted zones can't use any of the name servers that
1282          * are assigned to the reusable delegation set. If one or more hosted zones do use
1283          * one or more name servers that are assigned to the reusable delegation set, you
1284          * can do one of the following:</p> <ul> <li> <p>For small numbers of hosted
1285          * zones—up to a few hundred—it's relatively easy to create reusable delegation
1286          * sets until you get one that has four name servers that don't overlap with any of
1287          * the name servers in your hosted zones.</p> </li> <li> <p>For larger numbers of
1288          * hosted zones, the easiest solution is to use more than one reusable delegation
1289          * set.</p> </li> <li> <p>For larger numbers of hosted zones, you can also migrate
1290          * hosted zones that have overlapping name servers to hosted zones that don't have
1291          * overlapping name servers, then migrate the hosted zones again to use the
1292          * reusable delegation set.</p> </li> </ul><p><h3>See Also:</h3>   <a
1293          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateReusableDelegationSet">AWS
1294          * API Reference</a></p>
1295          *
1296          * returns a future to the operation so that it can be executed in parallel to other requests.
1297          */
1298         virtual Model::CreateReusableDelegationSetOutcomeCallable CreateReusableDelegationSetCallable(const Model::CreateReusableDelegationSetRequest& request) const;
1299 
1300         /**
1301          * <p>Creates a delegation set (a group of four name servers) that can be reused by
1302          * multiple hosted zones that were created by the same Amazon Web Services account.
1303          * </p> <p>You can also create a reusable delegation set that uses the four name
1304          * servers that are associated with an existing hosted zone. Specify the hosted
1305          * zone ID in the <code>CreateReusableDelegationSet</code> request.</p>
1306          * <p>You can't associate a reusable delegation set with a private hosted zone.</p>
1307          *  <p>For information about using a reusable delegation set to configure
1308          * white label name servers, see <a
1309          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/white-label-name-servers.html">Configuring
1310          * White Label Name Servers</a>.</p> <p>The process for migrating existing hosted
1311          * zones to use a reusable delegation set is comparable to the process for
1312          * configuring white label name servers. You need to perform the following
1313          * steps:</p> <ol> <li> <p>Create a reusable delegation set.</p> </li> <li>
1314          * <p>Recreate hosted zones, and reduce the TTL to 60 seconds or less.</p> </li>
1315          * <li> <p>Recreate resource record sets in the new hosted zones.</p> </li> <li>
1316          * <p>Change the registrar's name servers to use the name servers for the new
1317          * hosted zones.</p> </li> <li> <p>Monitor traffic for the website or
1318          * application.</p> </li> <li> <p>Change TTLs back to their original values.</p>
1319          * </li> </ol> <p>If you want to migrate existing hosted zones to use a reusable
1320          * delegation set, the existing hosted zones can't use any of the name servers that
1321          * are assigned to the reusable delegation set. If one or more hosted zones do use
1322          * one or more name servers that are assigned to the reusable delegation set, you
1323          * can do one of the following:</p> <ul> <li> <p>For small numbers of hosted
1324          * zones—up to a few hundred—it's relatively easy to create reusable delegation
1325          * sets until you get one that has four name servers that don't overlap with any of
1326          * the name servers in your hosted zones.</p> </li> <li> <p>For larger numbers of
1327          * hosted zones, the easiest solution is to use more than one reusable delegation
1328          * set.</p> </li> <li> <p>For larger numbers of hosted zones, you can also migrate
1329          * hosted zones that have overlapping name servers to hosted zones that don't have
1330          * overlapping name servers, then migrate the hosted zones again to use the
1331          * reusable delegation set.</p> </li> </ul><p><h3>See Also:</h3>   <a
1332          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateReusableDelegationSet">AWS
1333          * API Reference</a></p>
1334          *
1335          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1336          */
1337         virtual void CreateReusableDelegationSetAsync(const Model::CreateReusableDelegationSetRequest& request, const CreateReusableDelegationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1338 
1339         /**
1340          * <p>Creates a traffic policy, which you use to create multiple DNS resource
1341          * record sets for one domain name (such as example.com) or one subdomain name
1342          * (such as www.example.com).</p><p><h3>See Also:</h3>   <a
1343          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicy">AWS
1344          * API Reference</a></p>
1345          */
1346         virtual Model::CreateTrafficPolicyOutcome CreateTrafficPolicy(const Model::CreateTrafficPolicyRequest& request) const;
1347 
1348         /**
1349          * <p>Creates a traffic policy, which you use to create multiple DNS resource
1350          * record sets for one domain name (such as example.com) or one subdomain name
1351          * (such as www.example.com).</p><p><h3>See Also:</h3>   <a
1352          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicy">AWS
1353          * API Reference</a></p>
1354          *
1355          * returns a future to the operation so that it can be executed in parallel to other requests.
1356          */
1357         virtual Model::CreateTrafficPolicyOutcomeCallable CreateTrafficPolicyCallable(const Model::CreateTrafficPolicyRequest& request) const;
1358 
1359         /**
1360          * <p>Creates a traffic policy, which you use to create multiple DNS resource
1361          * record sets for one domain name (such as example.com) or one subdomain name
1362          * (such as www.example.com).</p><p><h3>See Also:</h3>   <a
1363          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicy">AWS
1364          * API Reference</a></p>
1365          *
1366          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1367          */
1368         virtual void CreateTrafficPolicyAsync(const Model::CreateTrafficPolicyRequest& request, const CreateTrafficPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1369 
1370         /**
1371          * <p>Creates resource record sets in a specified hosted zone based on the settings
1372          * in a specified traffic policy version. In addition,
1373          * <code>CreateTrafficPolicyInstance</code> associates the resource record sets
1374          * with a specified domain name (such as example.com) or subdomain name (such as
1375          * www.example.com). Amazon Route 53 responds to DNS queries for the domain or
1376          * subdomain name by using the resource record sets that
1377          * <code>CreateTrafficPolicyInstance</code> created.</p><p><h3>See Also:</h3>   <a
1378          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyInstance">AWS
1379          * API Reference</a></p>
1380          */
1381         virtual Model::CreateTrafficPolicyInstanceOutcome CreateTrafficPolicyInstance(const Model::CreateTrafficPolicyInstanceRequest& request) const;
1382 
1383         /**
1384          * <p>Creates resource record sets in a specified hosted zone based on the settings
1385          * in a specified traffic policy version. In addition,
1386          * <code>CreateTrafficPolicyInstance</code> associates the resource record sets
1387          * with a specified domain name (such as example.com) or subdomain name (such as
1388          * www.example.com). Amazon Route 53 responds to DNS queries for the domain or
1389          * subdomain name by using the resource record sets that
1390          * <code>CreateTrafficPolicyInstance</code> created.</p><p><h3>See Also:</h3>   <a
1391          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyInstance">AWS
1392          * API Reference</a></p>
1393          *
1394          * returns a future to the operation so that it can be executed in parallel to other requests.
1395          */
1396         virtual Model::CreateTrafficPolicyInstanceOutcomeCallable CreateTrafficPolicyInstanceCallable(const Model::CreateTrafficPolicyInstanceRequest& request) const;
1397 
1398         /**
1399          * <p>Creates resource record sets in a specified hosted zone based on the settings
1400          * in a specified traffic policy version. In addition,
1401          * <code>CreateTrafficPolicyInstance</code> associates the resource record sets
1402          * with a specified domain name (such as example.com) or subdomain name (such as
1403          * www.example.com). Amazon Route 53 responds to DNS queries for the domain or
1404          * subdomain name by using the resource record sets that
1405          * <code>CreateTrafficPolicyInstance</code> created.</p><p><h3>See Also:</h3>   <a
1406          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyInstance">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 CreateTrafficPolicyInstanceAsync(const Model::CreateTrafficPolicyInstanceRequest& request, const CreateTrafficPolicyInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1412 
1413         /**
1414          * <p>Creates a new version of an existing traffic policy. When you create a new
1415          * version of a traffic policy, you specify the ID of the traffic policy that you
1416          * want to update and a JSON-formatted document that describes the new version. You
1417          * use traffic policies to create multiple DNS resource record sets for one domain
1418          * name (such as example.com) or one subdomain name (such as www.example.com). You
1419          * can create a maximum of 1000 versions of a traffic policy. If you reach the
1420          * limit and need to create another version, you'll need to start a new traffic
1421          * policy.</p><p><h3>See Also:</h3>   <a
1422          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyVersion">AWS
1423          * API Reference</a></p>
1424          */
1425         virtual Model::CreateTrafficPolicyVersionOutcome CreateTrafficPolicyVersion(const Model::CreateTrafficPolicyVersionRequest& request) const;
1426 
1427         /**
1428          * <p>Creates a new version of an existing traffic policy. When you create a new
1429          * version of a traffic policy, you specify the ID of the traffic policy that you
1430          * want to update and a JSON-formatted document that describes the new version. You
1431          * use traffic policies to create multiple DNS resource record sets for one domain
1432          * name (such as example.com) or one subdomain name (such as www.example.com). You
1433          * can create a maximum of 1000 versions of a traffic policy. If you reach the
1434          * limit and need to create another version, you'll need to start a new traffic
1435          * policy.</p><p><h3>See Also:</h3>   <a
1436          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyVersion">AWS
1437          * API Reference</a></p>
1438          *
1439          * returns a future to the operation so that it can be executed in parallel to other requests.
1440          */
1441         virtual Model::CreateTrafficPolicyVersionOutcomeCallable CreateTrafficPolicyVersionCallable(const Model::CreateTrafficPolicyVersionRequest& request) const;
1442 
1443         /**
1444          * <p>Creates a new version of an existing traffic policy. When you create a new
1445          * version of a traffic policy, you specify the ID of the traffic policy that you
1446          * want to update and a JSON-formatted document that describes the new version. You
1447          * use traffic policies to create multiple DNS resource record sets for one domain
1448          * name (such as example.com) or one subdomain name (such as www.example.com). You
1449          * can create a maximum of 1000 versions of a traffic policy. If you reach the
1450          * limit and need to create another version, you'll need to start a new traffic
1451          * policy.</p><p><h3>See Also:</h3>   <a
1452          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyVersion">AWS
1453          * API Reference</a></p>
1454          *
1455          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1456          */
1457         virtual void CreateTrafficPolicyVersionAsync(const Model::CreateTrafficPolicyVersionRequest& request, const CreateTrafficPolicyVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1458 
1459         /**
1460          * <p>Authorizes the Amazon Web Services account that created a specified VPC to
1461          * submit an <code>AssociateVPCWithHostedZone</code> request to associate the VPC
1462          * with a specified hosted zone that was created by a different account. To submit
1463          * a <code>CreateVPCAssociationAuthorization</code> request, you must use the
1464          * account that created the hosted zone. After you authorize the association, use
1465          * the account that created the VPC to submit an
1466          * <code>AssociateVPCWithHostedZone</code> request.</p>  <p>If you want to
1467          * associate multiple VPCs that you created by using one account with a hosted zone
1468          * that you created by using a different account, you must submit one authorization
1469          * request for each VPC.</p> <p><h3>See Also:</h3>   <a
1470          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateVPCAssociationAuthorization">AWS
1471          * API Reference</a></p>
1472          */
1473         virtual Model::CreateVPCAssociationAuthorizationOutcome CreateVPCAssociationAuthorization(const Model::CreateVPCAssociationAuthorizationRequest& request) const;
1474 
1475         /**
1476          * <p>Authorizes the Amazon Web Services account that created a specified VPC to
1477          * submit an <code>AssociateVPCWithHostedZone</code> request to associate the VPC
1478          * with a specified hosted zone that was created by a different account. To submit
1479          * a <code>CreateVPCAssociationAuthorization</code> request, you must use the
1480          * account that created the hosted zone. After you authorize the association, use
1481          * the account that created the VPC to submit an
1482          * <code>AssociateVPCWithHostedZone</code> request.</p>  <p>If you want to
1483          * associate multiple VPCs that you created by using one account with a hosted zone
1484          * that you created by using a different account, you must submit one authorization
1485          * request for each VPC.</p> <p><h3>See Also:</h3>   <a
1486          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateVPCAssociationAuthorization">AWS
1487          * API Reference</a></p>
1488          *
1489          * returns a future to the operation so that it can be executed in parallel to other requests.
1490          */
1491         virtual Model::CreateVPCAssociationAuthorizationOutcomeCallable CreateVPCAssociationAuthorizationCallable(const Model::CreateVPCAssociationAuthorizationRequest& request) const;
1492 
1493         /**
1494          * <p>Authorizes the Amazon Web Services account that created a specified VPC to
1495          * submit an <code>AssociateVPCWithHostedZone</code> request to associate the VPC
1496          * with a specified hosted zone that was created by a different account. To submit
1497          * a <code>CreateVPCAssociationAuthorization</code> request, you must use the
1498          * account that created the hosted zone. After you authorize the association, use
1499          * the account that created the VPC to submit an
1500          * <code>AssociateVPCWithHostedZone</code> request.</p>  <p>If you want to
1501          * associate multiple VPCs that you created by using one account with a hosted zone
1502          * that you created by using a different account, you must submit one authorization
1503          * request for each VPC.</p> <p><h3>See Also:</h3>   <a
1504          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateVPCAssociationAuthorization">AWS
1505          * API Reference</a></p>
1506          *
1507          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1508          */
1509         virtual void CreateVPCAssociationAuthorizationAsync(const Model::CreateVPCAssociationAuthorizationRequest& request, const CreateVPCAssociationAuthorizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1510 
1511         /**
1512          * <p>Deactivates a key-signing key (KSK) so that it will not be used for signing
1513          * by DNSSEC. This operation changes the KSK status to
1514          * <code>INACTIVE</code>.</p><p><h3>See Also:</h3>   <a
1515          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeactivateKeySigningKey">AWS
1516          * API Reference</a></p>
1517          */
1518         virtual Model::DeactivateKeySigningKeyOutcome DeactivateKeySigningKey(const Model::DeactivateKeySigningKeyRequest& request) const;
1519 
1520         /**
1521          * <p>Deactivates a key-signing key (KSK) so that it will not be used for signing
1522          * by DNSSEC. This operation changes the KSK status to
1523          * <code>INACTIVE</code>.</p><p><h3>See Also:</h3>   <a
1524          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeactivateKeySigningKey">AWS
1525          * API Reference</a></p>
1526          *
1527          * returns a future to the operation so that it can be executed in parallel to other requests.
1528          */
1529         virtual Model::DeactivateKeySigningKeyOutcomeCallable DeactivateKeySigningKeyCallable(const Model::DeactivateKeySigningKeyRequest& request) const;
1530 
1531         /**
1532          * <p>Deactivates a key-signing key (KSK) so that it will not be used for signing
1533          * by DNSSEC. This operation changes the KSK status to
1534          * <code>INACTIVE</code>.</p><p><h3>See Also:</h3>   <a
1535          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeactivateKeySigningKey">AWS
1536          * API Reference</a></p>
1537          *
1538          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1539          */
1540         virtual void DeactivateKeySigningKeyAsync(const Model::DeactivateKeySigningKeyRequest& request, const DeactivateKeySigningKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1541 
1542         /**
1543          * <p>Deletes a health check.</p>  <p>Amazon Route 53 does not prevent
1544          * you from deleting a health check even if the health check is associated with one
1545          * or more resource record sets. If you delete a health check and you don't update
1546          * the associated resource record sets, the future status of the health check can't
1547          * be predicted and may change. This will affect the routing of DNS queries for
1548          * your DNS failover configuration. For more information, see <a
1549          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html#health-checks-deleting.html">Replacing
1550          * and Deleting Health Checks</a> in the <i>Amazon Route 53 Developer
1551          * Guide</i>.</p>  <p>If you're using Cloud Map and you configured
1552          * Cloud Map to create a Route 53 health check when you register an instance, you
1553          * can't use the Route 53 <code>DeleteHealthCheck</code> command to delete the
1554          * health check. The health check is deleted automatically when you deregister the
1555          * instance; there can be a delay of several hours before the health check is
1556          * deleted from Route 53. </p><p><h3>See Also:</h3>   <a
1557          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHealthCheck">AWS
1558          * API Reference</a></p>
1559          */
1560         virtual Model::DeleteHealthCheckOutcome DeleteHealthCheck(const Model::DeleteHealthCheckRequest& request) const;
1561 
1562         /**
1563          * <p>Deletes a health check.</p>  <p>Amazon Route 53 does not prevent
1564          * you from deleting a health check even if the health check is associated with one
1565          * or more resource record sets. If you delete a health check and you don't update
1566          * the associated resource record sets, the future status of the health check can't
1567          * be predicted and may change. This will affect the routing of DNS queries for
1568          * your DNS failover configuration. For more information, see <a
1569          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html#health-checks-deleting.html">Replacing
1570          * and Deleting Health Checks</a> in the <i>Amazon Route 53 Developer
1571          * Guide</i>.</p>  <p>If you're using Cloud Map and you configured
1572          * Cloud Map to create a Route 53 health check when you register an instance, you
1573          * can't use the Route 53 <code>DeleteHealthCheck</code> command to delete the
1574          * health check. The health check is deleted automatically when you deregister the
1575          * instance; there can be a delay of several hours before the health check is
1576          * deleted from Route 53. </p><p><h3>See Also:</h3>   <a
1577          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHealthCheck">AWS
1578          * API Reference</a></p>
1579          *
1580          * returns a future to the operation so that it can be executed in parallel to other requests.
1581          */
1582         virtual Model::DeleteHealthCheckOutcomeCallable DeleteHealthCheckCallable(const Model::DeleteHealthCheckRequest& request) const;
1583 
1584         /**
1585          * <p>Deletes a health check.</p>  <p>Amazon Route 53 does not prevent
1586          * you from deleting a health check even if the health check is associated with one
1587          * or more resource record sets. If you delete a health check and you don't update
1588          * the associated resource record sets, the future status of the health check can't
1589          * be predicted and may change. This will affect the routing of DNS queries for
1590          * your DNS failover configuration. For more information, see <a
1591          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html#health-checks-deleting.html">Replacing
1592          * and Deleting Health Checks</a> in the <i>Amazon Route 53 Developer
1593          * Guide</i>.</p>  <p>If you're using Cloud Map and you configured
1594          * Cloud Map to create a Route 53 health check when you register an instance, you
1595          * can't use the Route 53 <code>DeleteHealthCheck</code> command to delete the
1596          * health check. The health check is deleted automatically when you deregister the
1597          * instance; there can be a delay of several hours before the health check is
1598          * deleted from Route 53. </p><p><h3>See Also:</h3>   <a
1599          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHealthCheck">AWS
1600          * API Reference</a></p>
1601          *
1602          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1603          */
1604         virtual void DeleteHealthCheckAsync(const Model::DeleteHealthCheckRequest& request, const DeleteHealthCheckResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1605 
1606         /**
1607          * <p>Deletes a hosted zone.</p> <p>If the hosted zone was created by another
1608          * service, such as Cloud Map, see <a
1609          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DeleteHostedZone.html#delete-public-hosted-zone-created-by-another-service">Deleting
1610          * Public Hosted Zones That Were Created by Another Service</a> in the <i>Amazon
1611          * Route 53 Developer Guide</i> for information about how to delete it. (The
1612          * process is the same for public and private hosted zones that were created by
1613          * another service.)</p> <p>If you want to keep your domain registration but you
1614          * want to stop routing internet traffic to your website or web application, we
1615          * recommend that you delete resource record sets in the hosted zone instead of
1616          * deleting the hosted zone.</p>  <p>If you delete a hosted zone, you
1617          * can't undelete it. You must create a new hosted zone and update the name servers
1618          * for your domain registration, which can require up to 48 hours to take effect.
1619          * (If you delegated responsibility for a subdomain to a hosted zone and you delete
1620          * the child hosted zone, you must update the name servers in the parent hosted
1621          * zone.) In addition, if you delete a hosted zone, someone could hijack the domain
1622          * and route traffic to their own resources using your domain name.</p>
1623          *  <p>If you want to avoid the monthly charge for the hosted zone, you
1624          * can transfer DNS service for the domain to a free DNS service. When you transfer
1625          * DNS service, you have to update the name servers for the domain registration. If
1626          * the domain is registered with Route 53, see <a
1627          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_UpdateDomainNameservers.html">UpdateDomainNameservers</a>
1628          * for information about how to replace Route 53 name servers with name servers for
1629          * the new DNS service. If the domain is registered with another registrar, use the
1630          * method provided by the registrar to update name servers for the domain
1631          * registration. For more information, perform an internet search on "free DNS
1632          * service."</p> <p>You can delete a hosted zone only if it contains only the
1633          * default SOA record and NS resource record sets. If the hosted zone contains
1634          * other resource record sets, you must delete them before you can delete the
1635          * hosted zone. If you try to delete a hosted zone that contains other resource
1636          * record sets, the request fails, and Route 53 returns a
1637          * <code>HostedZoneNotEmpty</code> error. For information about deleting records
1638          * from your hosted zone, see <a
1639          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html">ChangeResourceRecordSets</a>.</p>
1640          * <p>To verify that the hosted zone has been deleted, do one of the following:</p>
1641          * <ul> <li> <p>Use the <code>GetHostedZone</code> action to request information
1642          * about the hosted zone.</p> </li> <li> <p>Use the <code>ListHostedZones</code>
1643          * action to get a list of the hosted zones associated with the current Amazon Web
1644          * Services account.</p> </li> </ul><p><h3>See Also:</h3>   <a
1645          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHostedZone">AWS
1646          * API Reference</a></p>
1647          */
1648         virtual Model::DeleteHostedZoneOutcome DeleteHostedZone(const Model::DeleteHostedZoneRequest& request) const;
1649 
1650         /**
1651          * <p>Deletes a hosted zone.</p> <p>If the hosted zone was created by another
1652          * service, such as Cloud Map, see <a
1653          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DeleteHostedZone.html#delete-public-hosted-zone-created-by-another-service">Deleting
1654          * Public Hosted Zones That Were Created by Another Service</a> in the <i>Amazon
1655          * Route 53 Developer Guide</i> for information about how to delete it. (The
1656          * process is the same for public and private hosted zones that were created by
1657          * another service.)</p> <p>If you want to keep your domain registration but you
1658          * want to stop routing internet traffic to your website or web application, we
1659          * recommend that you delete resource record sets in the hosted zone instead of
1660          * deleting the hosted zone.</p>  <p>If you delete a hosted zone, you
1661          * can't undelete it. You must create a new hosted zone and update the name servers
1662          * for your domain registration, which can require up to 48 hours to take effect.
1663          * (If you delegated responsibility for a subdomain to a hosted zone and you delete
1664          * the child hosted zone, you must update the name servers in the parent hosted
1665          * zone.) In addition, if you delete a hosted zone, someone could hijack the domain
1666          * and route traffic to their own resources using your domain name.</p>
1667          *  <p>If you want to avoid the monthly charge for the hosted zone, you
1668          * can transfer DNS service for the domain to a free DNS service. When you transfer
1669          * DNS service, you have to update the name servers for the domain registration. If
1670          * the domain is registered with Route 53, see <a
1671          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_UpdateDomainNameservers.html">UpdateDomainNameservers</a>
1672          * for information about how to replace Route 53 name servers with name servers for
1673          * the new DNS service. If the domain is registered with another registrar, use the
1674          * method provided by the registrar to update name servers for the domain
1675          * registration. For more information, perform an internet search on "free DNS
1676          * service."</p> <p>You can delete a hosted zone only if it contains only the
1677          * default SOA record and NS resource record sets. If the hosted zone contains
1678          * other resource record sets, you must delete them before you can delete the
1679          * hosted zone. If you try to delete a hosted zone that contains other resource
1680          * record sets, the request fails, and Route 53 returns a
1681          * <code>HostedZoneNotEmpty</code> error. For information about deleting records
1682          * from your hosted zone, see <a
1683          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html">ChangeResourceRecordSets</a>.</p>
1684          * <p>To verify that the hosted zone has been deleted, do one of the following:</p>
1685          * <ul> <li> <p>Use the <code>GetHostedZone</code> action to request information
1686          * about the hosted zone.</p> </li> <li> <p>Use the <code>ListHostedZones</code>
1687          * action to get a list of the hosted zones associated with the current Amazon Web
1688          * Services account.</p> </li> </ul><p><h3>See Also:</h3>   <a
1689          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHostedZone">AWS
1690          * API Reference</a></p>
1691          *
1692          * returns a future to the operation so that it can be executed in parallel to other requests.
1693          */
1694         virtual Model::DeleteHostedZoneOutcomeCallable DeleteHostedZoneCallable(const Model::DeleteHostedZoneRequest& request) const;
1695 
1696         /**
1697          * <p>Deletes a hosted zone.</p> <p>If the hosted zone was created by another
1698          * service, such as Cloud Map, see <a
1699          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DeleteHostedZone.html#delete-public-hosted-zone-created-by-another-service">Deleting
1700          * Public Hosted Zones That Were Created by Another Service</a> in the <i>Amazon
1701          * Route 53 Developer Guide</i> for information about how to delete it. (The
1702          * process is the same for public and private hosted zones that were created by
1703          * another service.)</p> <p>If you want to keep your domain registration but you
1704          * want to stop routing internet traffic to your website or web application, we
1705          * recommend that you delete resource record sets in the hosted zone instead of
1706          * deleting the hosted zone.</p>  <p>If you delete a hosted zone, you
1707          * can't undelete it. You must create a new hosted zone and update the name servers
1708          * for your domain registration, which can require up to 48 hours to take effect.
1709          * (If you delegated responsibility for a subdomain to a hosted zone and you delete
1710          * the child hosted zone, you must update the name servers in the parent hosted
1711          * zone.) In addition, if you delete a hosted zone, someone could hijack the domain
1712          * and route traffic to their own resources using your domain name.</p>
1713          *  <p>If you want to avoid the monthly charge for the hosted zone, you
1714          * can transfer DNS service for the domain to a free DNS service. When you transfer
1715          * DNS service, you have to update the name servers for the domain registration. If
1716          * the domain is registered with Route 53, see <a
1717          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_UpdateDomainNameservers.html">UpdateDomainNameservers</a>
1718          * for information about how to replace Route 53 name servers with name servers for
1719          * the new DNS service. If the domain is registered with another registrar, use the
1720          * method provided by the registrar to update name servers for the domain
1721          * registration. For more information, perform an internet search on "free DNS
1722          * service."</p> <p>You can delete a hosted zone only if it contains only the
1723          * default SOA record and NS resource record sets. If the hosted zone contains
1724          * other resource record sets, you must delete them before you can delete the
1725          * hosted zone. If you try to delete a hosted zone that contains other resource
1726          * record sets, the request fails, and Route 53 returns a
1727          * <code>HostedZoneNotEmpty</code> error. For information about deleting records
1728          * from your hosted zone, see <a
1729          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html">ChangeResourceRecordSets</a>.</p>
1730          * <p>To verify that the hosted zone has been deleted, do one of the following:</p>
1731          * <ul> <li> <p>Use the <code>GetHostedZone</code> action to request information
1732          * about the hosted zone.</p> </li> <li> <p>Use the <code>ListHostedZones</code>
1733          * action to get a list of the hosted zones associated with the current Amazon Web
1734          * Services account.</p> </li> </ul><p><h3>See Also:</h3>   <a
1735          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHostedZone">AWS
1736          * API Reference</a></p>
1737          *
1738          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1739          */
1740         virtual void DeleteHostedZoneAsync(const Model::DeleteHostedZoneRequest& request, const DeleteHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1741 
1742         /**
1743          * <p>Deletes a key-signing key (KSK). Before you can delete a KSK, you must
1744          * deactivate it. The KSK must be deactivated before you can delete it regardless
1745          * of whether the hosted zone is enabled for DNSSEC signing.</p><p><h3>See
1746          * Also:</h3>   <a
1747          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteKeySigningKey">AWS
1748          * API Reference</a></p>
1749          */
1750         virtual Model::DeleteKeySigningKeyOutcome DeleteKeySigningKey(const Model::DeleteKeySigningKeyRequest& request) const;
1751 
1752         /**
1753          * <p>Deletes a key-signing key (KSK). Before you can delete a KSK, you must
1754          * deactivate it. The KSK must be deactivated before you can delete it regardless
1755          * of whether the hosted zone is enabled for DNSSEC signing.</p><p><h3>See
1756          * Also:</h3>   <a
1757          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteKeySigningKey">AWS
1758          * API Reference</a></p>
1759          *
1760          * returns a future to the operation so that it can be executed in parallel to other requests.
1761          */
1762         virtual Model::DeleteKeySigningKeyOutcomeCallable DeleteKeySigningKeyCallable(const Model::DeleteKeySigningKeyRequest& request) const;
1763 
1764         /**
1765          * <p>Deletes a key-signing key (KSK). Before you can delete a KSK, you must
1766          * deactivate it. The KSK must be deactivated before you can delete it regardless
1767          * of whether the hosted zone is enabled for DNSSEC signing.</p><p><h3>See
1768          * Also:</h3>   <a
1769          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteKeySigningKey">AWS
1770          * API Reference</a></p>
1771          *
1772          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1773          */
1774         virtual void DeleteKeySigningKeyAsync(const Model::DeleteKeySigningKeyRequest& request, const DeleteKeySigningKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1775 
1776         /**
1777          * <p>Deletes a configuration for DNS query logging. If you delete a configuration,
1778          * Amazon Route 53 stops sending query logs to CloudWatch Logs. Route 53 doesn't
1779          * delete any logs that are already in CloudWatch Logs.</p> <p>For more information
1780          * about DNS query logs, see <a
1781          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a>.</p><p><h3>See
1782          * Also:</h3>   <a
1783          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteQueryLoggingConfig">AWS
1784          * API Reference</a></p>
1785          */
1786         virtual Model::DeleteQueryLoggingConfigOutcome DeleteQueryLoggingConfig(const Model::DeleteQueryLoggingConfigRequest& request) const;
1787 
1788         /**
1789          * <p>Deletes a configuration for DNS query logging. If you delete a configuration,
1790          * Amazon Route 53 stops sending query logs to CloudWatch Logs. Route 53 doesn't
1791          * delete any logs that are already in CloudWatch Logs.</p> <p>For more information
1792          * about DNS query logs, see <a
1793          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a>.</p><p><h3>See
1794          * Also:</h3>   <a
1795          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteQueryLoggingConfig">AWS
1796          * API Reference</a></p>
1797          *
1798          * returns a future to the operation so that it can be executed in parallel to other requests.
1799          */
1800         virtual Model::DeleteQueryLoggingConfigOutcomeCallable DeleteQueryLoggingConfigCallable(const Model::DeleteQueryLoggingConfigRequest& request) const;
1801 
1802         /**
1803          * <p>Deletes a configuration for DNS query logging. If you delete a configuration,
1804          * Amazon Route 53 stops sending query logs to CloudWatch Logs. Route 53 doesn't
1805          * delete any logs that are already in CloudWatch Logs.</p> <p>For more information
1806          * about DNS query logs, see <a
1807          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a>.</p><p><h3>See
1808          * Also:</h3>   <a
1809          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteQueryLoggingConfig">AWS
1810          * API Reference</a></p>
1811          *
1812          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1813          */
1814         virtual void DeleteQueryLoggingConfigAsync(const Model::DeleteQueryLoggingConfigRequest& request, const DeleteQueryLoggingConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1815 
1816         /**
1817          * <p>Deletes a reusable delegation set.</p>  <p>You can delete a
1818          * reusable delegation set only if it isn't associated with any hosted zones.</p>
1819          *  <p>To verify that the reusable delegation set is not associated
1820          * with any hosted zones, submit a <a
1821          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetReusableDelegationSet.html">GetReusableDelegationSet</a>
1822          * request and specify the ID of the reusable delegation set that you want to
1823          * delete.</p><p><h3>See Also:</h3>   <a
1824          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteReusableDelegationSet">AWS
1825          * API Reference</a></p>
1826          */
1827         virtual Model::DeleteReusableDelegationSetOutcome DeleteReusableDelegationSet(const Model::DeleteReusableDelegationSetRequest& request) const;
1828 
1829         /**
1830          * <p>Deletes a reusable delegation set.</p>  <p>You can delete a
1831          * reusable delegation set only if it isn't associated with any hosted zones.</p>
1832          *  <p>To verify that the reusable delegation set is not associated
1833          * with any hosted zones, submit a <a
1834          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetReusableDelegationSet.html">GetReusableDelegationSet</a>
1835          * request and specify the ID of the reusable delegation set that you want to
1836          * delete.</p><p><h3>See Also:</h3>   <a
1837          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteReusableDelegationSet">AWS
1838          * API Reference</a></p>
1839          *
1840          * returns a future to the operation so that it can be executed in parallel to other requests.
1841          */
1842         virtual Model::DeleteReusableDelegationSetOutcomeCallable DeleteReusableDelegationSetCallable(const Model::DeleteReusableDelegationSetRequest& request) const;
1843 
1844         /**
1845          * <p>Deletes a reusable delegation set.</p>  <p>You can delete a
1846          * reusable delegation set only if it isn't associated with any hosted zones.</p>
1847          *  <p>To verify that the reusable delegation set is not associated
1848          * with any hosted zones, submit a <a
1849          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetReusableDelegationSet.html">GetReusableDelegationSet</a>
1850          * request and specify the ID of the reusable delegation set that you want to
1851          * delete.</p><p><h3>See Also:</h3>   <a
1852          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteReusableDelegationSet">AWS
1853          * API Reference</a></p>
1854          *
1855          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1856          */
1857         virtual void DeleteReusableDelegationSetAsync(const Model::DeleteReusableDelegationSetRequest& request, const DeleteReusableDelegationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1858 
1859         /**
1860          * <p>Deletes a traffic policy.</p> <p>When you delete a traffic policy, Route 53
1861          * sets a flag on the policy to indicate that it has been deleted. However, Route
1862          * 53 never fully deletes the traffic policy. Note the following:</p> <ul> <li>
1863          * <p>Deleted traffic policies aren't listed if you run <a
1864          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListTrafficPolicies.html">ListTrafficPolicies</a>.</p>
1865          * </li> <li> <p> There's no way to get a list of deleted policies.</p> </li> <li>
1866          * <p>If you retain the ID of the policy, you can get information about the policy,
1867          * including the traffic policy document, by running <a
1868          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetTrafficPolicy.html">GetTrafficPolicy</a>.</p>
1869          * </li> </ul><p><h3>See Also:</h3>   <a
1870          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicy">AWS
1871          * API Reference</a></p>
1872          */
1873         virtual Model::DeleteTrafficPolicyOutcome DeleteTrafficPolicy(const Model::DeleteTrafficPolicyRequest& request) const;
1874 
1875         /**
1876          * <p>Deletes a traffic policy.</p> <p>When you delete a traffic policy, Route 53
1877          * sets a flag on the policy to indicate that it has been deleted. However, Route
1878          * 53 never fully deletes the traffic policy. Note the following:</p> <ul> <li>
1879          * <p>Deleted traffic policies aren't listed if you run <a
1880          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListTrafficPolicies.html">ListTrafficPolicies</a>.</p>
1881          * </li> <li> <p> There's no way to get a list of deleted policies.</p> </li> <li>
1882          * <p>If you retain the ID of the policy, you can get information about the policy,
1883          * including the traffic policy document, by running <a
1884          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetTrafficPolicy.html">GetTrafficPolicy</a>.</p>
1885          * </li> </ul><p><h3>See Also:</h3>   <a
1886          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicy">AWS
1887          * API Reference</a></p>
1888          *
1889          * returns a future to the operation so that it can be executed in parallel to other requests.
1890          */
1891         virtual Model::DeleteTrafficPolicyOutcomeCallable DeleteTrafficPolicyCallable(const Model::DeleteTrafficPolicyRequest& request) const;
1892 
1893         /**
1894          * <p>Deletes a traffic policy.</p> <p>When you delete a traffic policy, Route 53
1895          * sets a flag on the policy to indicate that it has been deleted. However, Route
1896          * 53 never fully deletes the traffic policy. Note the following:</p> <ul> <li>
1897          * <p>Deleted traffic policies aren't listed if you run <a
1898          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListTrafficPolicies.html">ListTrafficPolicies</a>.</p>
1899          * </li> <li> <p> There's no way to get a list of deleted policies.</p> </li> <li>
1900          * <p>If you retain the ID of the policy, you can get information about the policy,
1901          * including the traffic policy document, by running <a
1902          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetTrafficPolicy.html">GetTrafficPolicy</a>.</p>
1903          * </li> </ul><p><h3>See Also:</h3>   <a
1904          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicy">AWS
1905          * API Reference</a></p>
1906          *
1907          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1908          */
1909         virtual void DeleteTrafficPolicyAsync(const Model::DeleteTrafficPolicyRequest& request, const DeleteTrafficPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1910 
1911         /**
1912          * <p>Deletes a traffic policy instance and all of the resource record sets that
1913          * Amazon Route 53 created when you created the instance.</p>  <p>In the
1914          * Route 53 console, traffic policy instances are known as policy records.</p>
1915          * <p><h3>See Also:</h3>   <a
1916          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicyInstance">AWS
1917          * API Reference</a></p>
1918          */
1919         virtual Model::DeleteTrafficPolicyInstanceOutcome DeleteTrafficPolicyInstance(const Model::DeleteTrafficPolicyInstanceRequest& request) const;
1920 
1921         /**
1922          * <p>Deletes a traffic policy instance and all of the resource record sets that
1923          * Amazon Route 53 created when you created the instance.</p>  <p>In the
1924          * Route 53 console, traffic policy instances are known as policy records.</p>
1925          * <p><h3>See Also:</h3>   <a
1926          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicyInstance">AWS
1927          * API Reference</a></p>
1928          *
1929          * returns a future to the operation so that it can be executed in parallel to other requests.
1930          */
1931         virtual Model::DeleteTrafficPolicyInstanceOutcomeCallable DeleteTrafficPolicyInstanceCallable(const Model::DeleteTrafficPolicyInstanceRequest& request) const;
1932 
1933         /**
1934          * <p>Deletes a traffic policy instance and all of the resource record sets that
1935          * Amazon Route 53 created when you created the instance.</p>  <p>In the
1936          * Route 53 console, traffic policy instances are known as policy records.</p>
1937          * <p><h3>See Also:</h3>   <a
1938          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicyInstance">AWS
1939          * API Reference</a></p>
1940          *
1941          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1942          */
1943         virtual void DeleteTrafficPolicyInstanceAsync(const Model::DeleteTrafficPolicyInstanceRequest& request, const DeleteTrafficPolicyInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1944 
1945         /**
1946          * <p>Removes authorization to submit an <code>AssociateVPCWithHostedZone</code>
1947          * request to associate a specified VPC with a hosted zone that was created by a
1948          * different account. You must use the account that created the hosted zone to
1949          * submit a <code>DeleteVPCAssociationAuthorization</code> request.</p>
1950          * <p>Sending this request only prevents the Amazon Web Services account that
1951          * created the VPC from associating the VPC with the Amazon Route 53 hosted zone in
1952          * the future. If the VPC is already associated with the hosted zone,
1953          * <code>DeleteVPCAssociationAuthorization</code> won't disassociate the VPC from
1954          * the hosted zone. If you want to delete an existing association, use
1955          * <code>DisassociateVPCFromHostedZone</code>.</p> <p><h3>See
1956          * Also:</h3>   <a
1957          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteVPCAssociationAuthorization">AWS
1958          * API Reference</a></p>
1959          */
1960         virtual Model::DeleteVPCAssociationAuthorizationOutcome DeleteVPCAssociationAuthorization(const Model::DeleteVPCAssociationAuthorizationRequest& request) const;
1961 
1962         /**
1963          * <p>Removes authorization to submit an <code>AssociateVPCWithHostedZone</code>
1964          * request to associate a specified VPC with a hosted zone that was created by a
1965          * different account. You must use the account that created the hosted zone to
1966          * submit a <code>DeleteVPCAssociationAuthorization</code> request.</p>
1967          * <p>Sending this request only prevents the Amazon Web Services account that
1968          * created the VPC from associating the VPC with the Amazon Route 53 hosted zone in
1969          * the future. If the VPC is already associated with the hosted zone,
1970          * <code>DeleteVPCAssociationAuthorization</code> won't disassociate the VPC from
1971          * the hosted zone. If you want to delete an existing association, use
1972          * <code>DisassociateVPCFromHostedZone</code>.</p> <p><h3>See
1973          * Also:</h3>   <a
1974          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteVPCAssociationAuthorization">AWS
1975          * API Reference</a></p>
1976          *
1977          * returns a future to the operation so that it can be executed in parallel to other requests.
1978          */
1979         virtual Model::DeleteVPCAssociationAuthorizationOutcomeCallable DeleteVPCAssociationAuthorizationCallable(const Model::DeleteVPCAssociationAuthorizationRequest& request) const;
1980 
1981         /**
1982          * <p>Removes authorization to submit an <code>AssociateVPCWithHostedZone</code>
1983          * request to associate a specified VPC with a hosted zone that was created by a
1984          * different account. You must use the account that created the hosted zone to
1985          * submit a <code>DeleteVPCAssociationAuthorization</code> request.</p>
1986          * <p>Sending this request only prevents the Amazon Web Services account that
1987          * created the VPC from associating the VPC with the Amazon Route 53 hosted zone in
1988          * the future. If the VPC is already associated with the hosted zone,
1989          * <code>DeleteVPCAssociationAuthorization</code> won't disassociate the VPC from
1990          * the hosted zone. If you want to delete an existing association, use
1991          * <code>DisassociateVPCFromHostedZone</code>.</p> <p><h3>See
1992          * Also:</h3>   <a
1993          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteVPCAssociationAuthorization">AWS
1994          * API Reference</a></p>
1995          *
1996          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1997          */
1998         virtual void DeleteVPCAssociationAuthorizationAsync(const Model::DeleteVPCAssociationAuthorizationRequest& request, const DeleteVPCAssociationAuthorizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1999 
2000         /**
2001          * <p>Disables DNSSEC signing in a specific hosted zone. This action does not
2002          * deactivate any key-signing keys (KSKs) that are active in the hosted
2003          * zone.</p><p><h3>See Also:</h3>   <a
2004          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DisableHostedZoneDNSSEC">AWS
2005          * API Reference</a></p>
2006          */
2007         virtual Model::DisableHostedZoneDNSSECOutcome DisableHostedZoneDNSSEC(const Model::DisableHostedZoneDNSSECRequest& request) const;
2008 
2009         /**
2010          * <p>Disables DNSSEC signing in a specific hosted zone. This action does not
2011          * deactivate any key-signing keys (KSKs) that are active in the hosted
2012          * zone.</p><p><h3>See Also:</h3>   <a
2013          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DisableHostedZoneDNSSEC">AWS
2014          * API Reference</a></p>
2015          *
2016          * returns a future to the operation so that it can be executed in parallel to other requests.
2017          */
2018         virtual Model::DisableHostedZoneDNSSECOutcomeCallable DisableHostedZoneDNSSECCallable(const Model::DisableHostedZoneDNSSECRequest& request) const;
2019 
2020         /**
2021          * <p>Disables DNSSEC signing in a specific hosted zone. This action does not
2022          * deactivate any key-signing keys (KSKs) that are active in the hosted
2023          * zone.</p><p><h3>See Also:</h3>   <a
2024          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DisableHostedZoneDNSSEC">AWS
2025          * API Reference</a></p>
2026          *
2027          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2028          */
2029         virtual void DisableHostedZoneDNSSECAsync(const Model::DisableHostedZoneDNSSECRequest& request, const DisableHostedZoneDNSSECResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2030 
2031         /**
2032          * <p>Disassociates an Amazon Virtual Private Cloud (Amazon VPC) from an Amazon
2033          * Route 53 private hosted zone. Note the following:</p> <ul> <li> <p>You can't
2034          * disassociate the last Amazon VPC from a private hosted zone.</p> </li> <li>
2035          * <p>You can't convert a private hosted zone into a public hosted zone.</p> </li>
2036          * <li> <p>You can submit a <code>DisassociateVPCFromHostedZone</code> request
2037          * using either the account that created the hosted zone or the account that
2038          * created the Amazon VPC.</p> </li> <li> <p>Some services, such as Cloud Map and
2039          * Amazon Elastic File System (Amazon EFS) automatically create hosted zones and
2040          * associate VPCs with the hosted zones. A service can create a hosted zone using
2041          * your account or using its own account. You can disassociate a VPC from a hosted
2042          * zone only if the service created the hosted zone using your account.</p> <p>When
2043          * you run <a
2044          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListHostedZonesByVPC.html">DisassociateVPCFromHostedZone</a>,
2045          * if the hosted zone has a value for <code>OwningAccount</code>, you can use
2046          * <code>DisassociateVPCFromHostedZone</code>. If the hosted zone has a value for
2047          * <code>OwningService</code>, you can't use
2048          * <code>DisassociateVPCFromHostedZone</code>.</p> </li> </ul><p><h3>See Also:</h3>
2049          * <a
2050          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DisassociateVPCFromHostedZone">AWS
2051          * API Reference</a></p>
2052          */
2053         virtual Model::DisassociateVPCFromHostedZoneOutcome DisassociateVPCFromHostedZone(const Model::DisassociateVPCFromHostedZoneRequest& request) const;
2054 
2055         /**
2056          * <p>Disassociates an Amazon Virtual Private Cloud (Amazon VPC) from an Amazon
2057          * Route 53 private hosted zone. Note the following:</p> <ul> <li> <p>You can't
2058          * disassociate the last Amazon VPC from a private hosted zone.</p> </li> <li>
2059          * <p>You can't convert a private hosted zone into a public hosted zone.</p> </li>
2060          * <li> <p>You can submit a <code>DisassociateVPCFromHostedZone</code> request
2061          * using either the account that created the hosted zone or the account that
2062          * created the Amazon VPC.</p> </li> <li> <p>Some services, such as Cloud Map and
2063          * Amazon Elastic File System (Amazon EFS) automatically create hosted zones and
2064          * associate VPCs with the hosted zones. A service can create a hosted zone using
2065          * your account or using its own account. You can disassociate a VPC from a hosted
2066          * zone only if the service created the hosted zone using your account.</p> <p>When
2067          * you run <a
2068          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListHostedZonesByVPC.html">DisassociateVPCFromHostedZone</a>,
2069          * if the hosted zone has a value for <code>OwningAccount</code>, you can use
2070          * <code>DisassociateVPCFromHostedZone</code>. If the hosted zone has a value for
2071          * <code>OwningService</code>, you can't use
2072          * <code>DisassociateVPCFromHostedZone</code>.</p> </li> </ul><p><h3>See Also:</h3>
2073          * <a
2074          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DisassociateVPCFromHostedZone">AWS
2075          * API Reference</a></p>
2076          *
2077          * returns a future to the operation so that it can be executed in parallel to other requests.
2078          */
2079         virtual Model::DisassociateVPCFromHostedZoneOutcomeCallable DisassociateVPCFromHostedZoneCallable(const Model::DisassociateVPCFromHostedZoneRequest& request) const;
2080 
2081         /**
2082          * <p>Disassociates an Amazon Virtual Private Cloud (Amazon VPC) from an Amazon
2083          * Route 53 private hosted zone. Note the following:</p> <ul> <li> <p>You can't
2084          * disassociate the last Amazon VPC from a private hosted zone.</p> </li> <li>
2085          * <p>You can't convert a private hosted zone into a public hosted zone.</p> </li>
2086          * <li> <p>You can submit a <code>DisassociateVPCFromHostedZone</code> request
2087          * using either the account that created the hosted zone or the account that
2088          * created the Amazon VPC.</p> </li> <li> <p>Some services, such as Cloud Map and
2089          * Amazon Elastic File System (Amazon EFS) automatically create hosted zones and
2090          * associate VPCs with the hosted zones. A service can create a hosted zone using
2091          * your account or using its own account. You can disassociate a VPC from a hosted
2092          * zone only if the service created the hosted zone using your account.</p> <p>When
2093          * you run <a
2094          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListHostedZonesByVPC.html">DisassociateVPCFromHostedZone</a>,
2095          * if the hosted zone has a value for <code>OwningAccount</code>, you can use
2096          * <code>DisassociateVPCFromHostedZone</code>. If the hosted zone has a value for
2097          * <code>OwningService</code>, you can't use
2098          * <code>DisassociateVPCFromHostedZone</code>.</p> </li> </ul><p><h3>See Also:</h3>
2099          * <a
2100          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DisassociateVPCFromHostedZone">AWS
2101          * API Reference</a></p>
2102          *
2103          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2104          */
2105         virtual void DisassociateVPCFromHostedZoneAsync(const Model::DisassociateVPCFromHostedZoneRequest& request, const DisassociateVPCFromHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2106 
2107         /**
2108          * <p>Enables DNSSEC signing in a specific hosted zone.</p><p><h3>See Also:</h3>
2109          * <a
2110          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/EnableHostedZoneDNSSEC">AWS
2111          * API Reference</a></p>
2112          */
2113         virtual Model::EnableHostedZoneDNSSECOutcome EnableHostedZoneDNSSEC(const Model::EnableHostedZoneDNSSECRequest& request) const;
2114 
2115         /**
2116          * <p>Enables DNSSEC signing in a specific hosted zone.</p><p><h3>See Also:</h3>
2117          * <a
2118          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/EnableHostedZoneDNSSEC">AWS
2119          * API Reference</a></p>
2120          *
2121          * returns a future to the operation so that it can be executed in parallel to other requests.
2122          */
2123         virtual Model::EnableHostedZoneDNSSECOutcomeCallable EnableHostedZoneDNSSECCallable(const Model::EnableHostedZoneDNSSECRequest& request) const;
2124 
2125         /**
2126          * <p>Enables DNSSEC signing in a specific hosted zone.</p><p><h3>See Also:</h3>
2127          * <a
2128          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/EnableHostedZoneDNSSEC">AWS
2129          * API Reference</a></p>
2130          *
2131          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2132          */
2133         virtual void EnableHostedZoneDNSSECAsync(const Model::EnableHostedZoneDNSSECRequest& request, const EnableHostedZoneDNSSECResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2134 
2135         /**
2136          * <p>Gets the specified limit for the current account, for example, the maximum
2137          * number of health checks that you can create using the account.</p> <p>For the
2138          * default limit, see <a
2139          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
2140          * in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a
2141          * href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open
2142          * a case</a>.</p>  <p>You can also view account limits in Amazon Web
2143          * Services Trusted Advisor. Sign in to the Amazon Web Services Management Console
2144          * and open the Trusted Advisor console at <a
2145          * href="https://console.aws.amazon.com/trustedadvisor">https://console.aws.amazon.com/trustedadvisor/</a>.
2146          * Then choose <b>Service limits</b> in the navigation pane.</p> <p><h3>See
2147          * Also:</h3>   <a
2148          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetAccountLimit">AWS
2149          * API Reference</a></p>
2150          */
2151         virtual Model::GetAccountLimitOutcome GetAccountLimit(const Model::GetAccountLimitRequest& request) const;
2152 
2153         /**
2154          * <p>Gets the specified limit for the current account, for example, the maximum
2155          * number of health checks that you can create using the account.</p> <p>For the
2156          * default limit, see <a
2157          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
2158          * in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a
2159          * href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open
2160          * a case</a>.</p>  <p>You can also view account limits in Amazon Web
2161          * Services Trusted Advisor. Sign in to the Amazon Web Services Management Console
2162          * and open the Trusted Advisor console at <a
2163          * href="https://console.aws.amazon.com/trustedadvisor">https://console.aws.amazon.com/trustedadvisor/</a>.
2164          * Then choose <b>Service limits</b> in the navigation pane.</p> <p><h3>See
2165          * Also:</h3>   <a
2166          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetAccountLimit">AWS
2167          * API Reference</a></p>
2168          *
2169          * returns a future to the operation so that it can be executed in parallel to other requests.
2170          */
2171         virtual Model::GetAccountLimitOutcomeCallable GetAccountLimitCallable(const Model::GetAccountLimitRequest& request) const;
2172 
2173         /**
2174          * <p>Gets the specified limit for the current account, for example, the maximum
2175          * number of health checks that you can create using the account.</p> <p>For the
2176          * default limit, see <a
2177          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
2178          * in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a
2179          * href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open
2180          * a case</a>.</p>  <p>You can also view account limits in Amazon Web
2181          * Services Trusted Advisor. Sign in to the Amazon Web Services Management Console
2182          * and open the Trusted Advisor console at <a
2183          * href="https://console.aws.amazon.com/trustedadvisor">https://console.aws.amazon.com/trustedadvisor/</a>.
2184          * Then choose <b>Service limits</b> in the navigation pane.</p> <p><h3>See
2185          * Also:</h3>   <a
2186          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetAccountLimit">AWS
2187          * API Reference</a></p>
2188          *
2189          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2190          */
2191         virtual void GetAccountLimitAsync(const Model::GetAccountLimitRequest& request, const GetAccountLimitResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2192 
2193         /**
2194          * <p>Returns the current status of a change batch request. The status is one of
2195          * the following values:</p> <ul> <li> <p> <code>PENDING</code> indicates that the
2196          * changes in this request have not propagated to all Amazon Route 53 DNS servers.
2197          * This is the initial status of all change batch requests.</p> </li> <li> <p>
2198          * <code>INSYNC</code> indicates that the changes have propagated to all Route 53
2199          * DNS servers. </p> </li> </ul><p><h3>See Also:</h3>   <a
2200          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetChange">AWS
2201          * API Reference</a></p>
2202          */
2203         virtual Model::GetChangeOutcome GetChange(const Model::GetChangeRequest& request) const;
2204 
2205         /**
2206          * <p>Returns the current status of a change batch request. The status is one of
2207          * the following values:</p> <ul> <li> <p> <code>PENDING</code> indicates that the
2208          * changes in this request have not propagated to all Amazon Route 53 DNS servers.
2209          * This is the initial status of all change batch requests.</p> </li> <li> <p>
2210          * <code>INSYNC</code> indicates that the changes have propagated to all Route 53
2211          * DNS servers. </p> </li> </ul><p><h3>See Also:</h3>   <a
2212          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetChange">AWS
2213          * API Reference</a></p>
2214          *
2215          * returns a future to the operation so that it can be executed in parallel to other requests.
2216          */
2217         virtual Model::GetChangeOutcomeCallable GetChangeCallable(const Model::GetChangeRequest& request) const;
2218 
2219         /**
2220          * <p>Returns the current status of a change batch request. The status is one of
2221          * the following values:</p> <ul> <li> <p> <code>PENDING</code> indicates that the
2222          * changes in this request have not propagated to all Amazon Route 53 DNS servers.
2223          * This is the initial status of all change batch requests.</p> </li> <li> <p>
2224          * <code>INSYNC</code> indicates that the changes have propagated to all Route 53
2225          * DNS servers. </p> </li> </ul><p><h3>See Also:</h3>   <a
2226          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetChange">AWS
2227          * API Reference</a></p>
2228          *
2229          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2230          */
2231         virtual void GetChangeAsync(const Model::GetChangeRequest& request, const GetChangeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2232 
2233         /**
2234          * <p>Route 53 does not perform authorization for this API because it retrieves
2235          * information that is already available to the public.</p>  <p>
2236          * <code>GetCheckerIpRanges</code> still works, but we recommend that you download
2237          * ip-ranges.json, which includes IP address ranges for all Amazon Web Services
2238          * services. For more information, see <a
2239          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-ip-addresses.html">IP
2240          * Address Ranges of Amazon Route 53 Servers</a> in the <i>Amazon Route 53
2241          * Developer Guide</i>.</p> <p><h3>See Also:</h3>   <a
2242          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetCheckerIpRanges">AWS
2243          * API Reference</a></p>
2244          */
2245         virtual Model::GetCheckerIpRangesOutcome GetCheckerIpRanges(const Model::GetCheckerIpRangesRequest& request) const;
2246 
2247         /**
2248          * <p>Route 53 does not perform authorization for this API because it retrieves
2249          * information that is already available to the public.</p>  <p>
2250          * <code>GetCheckerIpRanges</code> still works, but we recommend that you download
2251          * ip-ranges.json, which includes IP address ranges for all Amazon Web Services
2252          * services. For more information, see <a
2253          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-ip-addresses.html">IP
2254          * Address Ranges of Amazon Route 53 Servers</a> in the <i>Amazon Route 53
2255          * Developer Guide</i>.</p> <p><h3>See Also:</h3>   <a
2256          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetCheckerIpRanges">AWS
2257          * API Reference</a></p>
2258          *
2259          * returns a future to the operation so that it can be executed in parallel to other requests.
2260          */
2261         virtual Model::GetCheckerIpRangesOutcomeCallable GetCheckerIpRangesCallable(const Model::GetCheckerIpRangesRequest& request) const;
2262 
2263         /**
2264          * <p>Route 53 does not perform authorization for this API because it retrieves
2265          * information that is already available to the public.</p>  <p>
2266          * <code>GetCheckerIpRanges</code> still works, but we recommend that you download
2267          * ip-ranges.json, which includes IP address ranges for all Amazon Web Services
2268          * services. For more information, see <a
2269          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-ip-addresses.html">IP
2270          * Address Ranges of Amazon Route 53 Servers</a> in the <i>Amazon Route 53
2271          * Developer Guide</i>.</p> <p><h3>See Also:</h3>   <a
2272          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetCheckerIpRanges">AWS
2273          * API Reference</a></p>
2274          *
2275          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2276          */
2277         virtual void GetCheckerIpRangesAsync(const Model::GetCheckerIpRangesRequest& request, const GetCheckerIpRangesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2278 
2279         /**
2280          * <p>Returns information about DNSSEC for a specific hosted zone, including the
2281          * key-signing keys (KSKs) in the hosted zone.</p><p><h3>See Also:</h3>   <a
2282          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetDNSSEC">AWS
2283          * API Reference</a></p>
2284          */
2285         virtual Model::GetDNSSECOutcome GetDNSSEC(const Model::GetDNSSECRequest& request) const;
2286 
2287         /**
2288          * <p>Returns information about DNSSEC for a specific hosted zone, including the
2289          * key-signing keys (KSKs) in the hosted zone.</p><p><h3>See Also:</h3>   <a
2290          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetDNSSEC">AWS
2291          * API Reference</a></p>
2292          *
2293          * returns a future to the operation so that it can be executed in parallel to other requests.
2294          */
2295         virtual Model::GetDNSSECOutcomeCallable GetDNSSECCallable(const Model::GetDNSSECRequest& request) const;
2296 
2297         /**
2298          * <p>Returns information about DNSSEC for a specific hosted zone, including the
2299          * key-signing keys (KSKs) in the hosted zone.</p><p><h3>See Also:</h3>   <a
2300          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetDNSSEC">AWS
2301          * API Reference</a></p>
2302          *
2303          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2304          */
2305         virtual void GetDNSSECAsync(const Model::GetDNSSECRequest& request, const GetDNSSECResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2306 
2307         /**
2308          * <p>Gets information about whether a specified geographic location is supported
2309          * for Amazon Route 53 geolocation resource record sets.</p> <p>Route 53 does not
2310          * perform authorization for this API because it retrieves information that is
2311          * already available to the public.</p> <p>Use the following syntax to determine
2312          * whether a continent is supported for geolocation:</p> <p> <code>GET
2313          * /2013-04-01/geolocation?continentcode=<i>two-letter abbreviation for a
2314          * continent</i> </code> </p> <p>Use the following syntax to determine whether a
2315          * country is supported for geolocation:</p> <p> <code>GET
2316          * /2013-04-01/geolocation?countrycode=<i>two-character country code</i> </code>
2317          * </p> <p>Use the following syntax to determine whether a subdivision of a country
2318          * is supported for geolocation:</p> <p> <code>GET
2319          * /2013-04-01/geolocation?countrycode=<i>two-character country
2320          * code</i>&amp;subdivisioncode=<i>subdivision code</i> </code> </p><p><h3>See
2321          * Also:</h3>   <a
2322          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetGeoLocation">AWS
2323          * API Reference</a></p>
2324          */
2325         virtual Model::GetGeoLocationOutcome GetGeoLocation(const Model::GetGeoLocationRequest& request) const;
2326 
2327         /**
2328          * <p>Gets information about whether a specified geographic location is supported
2329          * for Amazon Route 53 geolocation resource record sets.</p> <p>Route 53 does not
2330          * perform authorization for this API because it retrieves information that is
2331          * already available to the public.</p> <p>Use the following syntax to determine
2332          * whether a continent is supported for geolocation:</p> <p> <code>GET
2333          * /2013-04-01/geolocation?continentcode=<i>two-letter abbreviation for a
2334          * continent</i> </code> </p> <p>Use the following syntax to determine whether a
2335          * country is supported for geolocation:</p> <p> <code>GET
2336          * /2013-04-01/geolocation?countrycode=<i>two-character country code</i> </code>
2337          * </p> <p>Use the following syntax to determine whether a subdivision of a country
2338          * is supported for geolocation:</p> <p> <code>GET
2339          * /2013-04-01/geolocation?countrycode=<i>two-character country
2340          * code</i>&amp;subdivisioncode=<i>subdivision code</i> </code> </p><p><h3>See
2341          * Also:</h3>   <a
2342          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetGeoLocation">AWS
2343          * API Reference</a></p>
2344          *
2345          * returns a future to the operation so that it can be executed in parallel to other requests.
2346          */
2347         virtual Model::GetGeoLocationOutcomeCallable GetGeoLocationCallable(const Model::GetGeoLocationRequest& request) const;
2348 
2349         /**
2350          * <p>Gets information about whether a specified geographic location is supported
2351          * for Amazon Route 53 geolocation resource record sets.</p> <p>Route 53 does not
2352          * perform authorization for this API because it retrieves information that is
2353          * already available to the public.</p> <p>Use the following syntax to determine
2354          * whether a continent is supported for geolocation:</p> <p> <code>GET
2355          * /2013-04-01/geolocation?continentcode=<i>two-letter abbreviation for a
2356          * continent</i> </code> </p> <p>Use the following syntax to determine whether a
2357          * country is supported for geolocation:</p> <p> <code>GET
2358          * /2013-04-01/geolocation?countrycode=<i>two-character country code</i> </code>
2359          * </p> <p>Use the following syntax to determine whether a subdivision of a country
2360          * is supported for geolocation:</p> <p> <code>GET
2361          * /2013-04-01/geolocation?countrycode=<i>two-character country
2362          * code</i>&amp;subdivisioncode=<i>subdivision code</i> </code> </p><p><h3>See
2363          * Also:</h3>   <a
2364          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetGeoLocation">AWS
2365          * API Reference</a></p>
2366          *
2367          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2368          */
2369         virtual void GetGeoLocationAsync(const Model::GetGeoLocationRequest& request, const GetGeoLocationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2370 
2371         /**
2372          * <p>Gets information about a specified health check.</p><p><h3>See Also:</h3>
2373          * <a
2374          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheck">AWS
2375          * API Reference</a></p>
2376          */
2377         virtual Model::GetHealthCheckOutcome GetHealthCheck(const Model::GetHealthCheckRequest& request) const;
2378 
2379         /**
2380          * <p>Gets information about a specified health check.</p><p><h3>See Also:</h3>
2381          * <a
2382          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheck">AWS
2383          * API Reference</a></p>
2384          *
2385          * returns a future to the operation so that it can be executed in parallel to other requests.
2386          */
2387         virtual Model::GetHealthCheckOutcomeCallable GetHealthCheckCallable(const Model::GetHealthCheckRequest& request) const;
2388 
2389         /**
2390          * <p>Gets information about a specified health check.</p><p><h3>See Also:</h3>
2391          * <a
2392          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheck">AWS
2393          * API Reference</a></p>
2394          *
2395          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2396          */
2397         virtual void GetHealthCheckAsync(const Model::GetHealthCheckRequest& request, const GetHealthCheckResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2398 
2399         /**
2400          * <p>Retrieves the number of health checks that are associated with the current
2401          * Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
2402          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckCount">AWS
2403          * API Reference</a></p>
2404          */
2405         virtual Model::GetHealthCheckCountOutcome GetHealthCheckCount(const Model::GetHealthCheckCountRequest& request) const;
2406 
2407         /**
2408          * <p>Retrieves the number of health checks that are associated with the current
2409          * Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
2410          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckCount">AWS
2411          * API Reference</a></p>
2412          *
2413          * returns a future to the operation so that it can be executed in parallel to other requests.
2414          */
2415         virtual Model::GetHealthCheckCountOutcomeCallable GetHealthCheckCountCallable(const Model::GetHealthCheckCountRequest& request) const;
2416 
2417         /**
2418          * <p>Retrieves the number of health checks that are associated with the current
2419          * Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
2420          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckCount">AWS
2421          * API Reference</a></p>
2422          *
2423          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2424          */
2425         virtual void GetHealthCheckCountAsync(const Model::GetHealthCheckCountRequest& request, const GetHealthCheckCountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2426 
2427         /**
2428          * <p>Gets the reason that a specified health check failed most
2429          * recently.</p><p><h3>See Also:</h3>   <a
2430          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckLastFailureReason">AWS
2431          * API Reference</a></p>
2432          */
2433         virtual Model::GetHealthCheckLastFailureReasonOutcome GetHealthCheckLastFailureReason(const Model::GetHealthCheckLastFailureReasonRequest& request) const;
2434 
2435         /**
2436          * <p>Gets the reason that a specified health check failed most
2437          * recently.</p><p><h3>See Also:</h3>   <a
2438          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckLastFailureReason">AWS
2439          * API Reference</a></p>
2440          *
2441          * returns a future to the operation so that it can be executed in parallel to other requests.
2442          */
2443         virtual Model::GetHealthCheckLastFailureReasonOutcomeCallable GetHealthCheckLastFailureReasonCallable(const Model::GetHealthCheckLastFailureReasonRequest& request) const;
2444 
2445         /**
2446          * <p>Gets the reason that a specified health check failed most
2447          * recently.</p><p><h3>See Also:</h3>   <a
2448          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckLastFailureReason">AWS
2449          * API Reference</a></p>
2450          *
2451          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2452          */
2453         virtual void GetHealthCheckLastFailureReasonAsync(const Model::GetHealthCheckLastFailureReasonRequest& request, const GetHealthCheckLastFailureReasonResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2454 
2455         /**
2456          * <p>Gets status of a specified health check. </p>  <p>This API is
2457          * intended for use during development to diagnose behavior. It doesn’t support
2458          * production use-cases with high query rates that require immediate and actionable
2459          * responses.</p> <p><h3>See Also:</h3>   <a
2460          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckStatus">AWS
2461          * API Reference</a></p>
2462          */
2463         virtual Model::GetHealthCheckStatusOutcome GetHealthCheckStatus(const Model::GetHealthCheckStatusRequest& request) const;
2464 
2465         /**
2466          * <p>Gets status of a specified health check. </p>  <p>This API is
2467          * intended for use during development to diagnose behavior. It doesn’t support
2468          * production use-cases with high query rates that require immediate and actionable
2469          * responses.</p> <p><h3>See Also:</h3>   <a
2470          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckStatus">AWS
2471          * API Reference</a></p>
2472          *
2473          * returns a future to the operation so that it can be executed in parallel to other requests.
2474          */
2475         virtual Model::GetHealthCheckStatusOutcomeCallable GetHealthCheckStatusCallable(const Model::GetHealthCheckStatusRequest& request) const;
2476 
2477         /**
2478          * <p>Gets status of a specified health check. </p>  <p>This API is
2479          * intended for use during development to diagnose behavior. It doesn’t support
2480          * production use-cases with high query rates that require immediate and actionable
2481          * responses.</p> <p><h3>See Also:</h3>   <a
2482          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckStatus">AWS
2483          * API Reference</a></p>
2484          *
2485          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2486          */
2487         virtual void GetHealthCheckStatusAsync(const Model::GetHealthCheckStatusRequest& request, const GetHealthCheckStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2488 
2489         /**
2490          * <p>Gets information about a specified hosted zone including the four name
2491          * servers assigned to the hosted zone.</p><p><h3>See Also:</h3>   <a
2492          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZone">AWS
2493          * API Reference</a></p>
2494          */
2495         virtual Model::GetHostedZoneOutcome GetHostedZone(const Model::GetHostedZoneRequest& request) const;
2496 
2497         /**
2498          * <p>Gets information about a specified hosted zone including the four name
2499          * servers assigned to the hosted zone.</p><p><h3>See Also:</h3>   <a
2500          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZone">AWS
2501          * API Reference</a></p>
2502          *
2503          * returns a future to the operation so that it can be executed in parallel to other requests.
2504          */
2505         virtual Model::GetHostedZoneOutcomeCallable GetHostedZoneCallable(const Model::GetHostedZoneRequest& request) const;
2506 
2507         /**
2508          * <p>Gets information about a specified hosted zone including the four name
2509          * servers assigned to the hosted zone.</p><p><h3>See Also:</h3>   <a
2510          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZone">AWS
2511          * API Reference</a></p>
2512          *
2513          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2514          */
2515         virtual void GetHostedZoneAsync(const Model::GetHostedZoneRequest& request, const GetHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2516 
2517         /**
2518          * <p>Retrieves the number of hosted zones that are associated with the current
2519          * Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
2520          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneCount">AWS
2521          * API Reference</a></p>
2522          */
2523         virtual Model::GetHostedZoneCountOutcome GetHostedZoneCount(const Model::GetHostedZoneCountRequest& request) const;
2524 
2525         /**
2526          * <p>Retrieves the number of hosted zones that are associated with the current
2527          * Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
2528          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneCount">AWS
2529          * API Reference</a></p>
2530          *
2531          * returns a future to the operation so that it can be executed in parallel to other requests.
2532          */
2533         virtual Model::GetHostedZoneCountOutcomeCallable GetHostedZoneCountCallable(const Model::GetHostedZoneCountRequest& request) const;
2534 
2535         /**
2536          * <p>Retrieves the number of hosted zones that are associated with the current
2537          * Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
2538          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneCount">AWS
2539          * API Reference</a></p>
2540          *
2541          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2542          */
2543         virtual void GetHostedZoneCountAsync(const Model::GetHostedZoneCountRequest& request, const GetHostedZoneCountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2544 
2545         /**
2546          * <p>Gets the specified limit for a specified hosted zone, for example, the
2547          * maximum number of records that you can create in the hosted zone. </p> <p>For
2548          * the default limit, see <a
2549          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
2550          * in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a
2551          * href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open
2552          * a case</a>.</p><p><h3>See Also:</h3>   <a
2553          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneLimit">AWS
2554          * API Reference</a></p>
2555          */
2556         virtual Model::GetHostedZoneLimitOutcome GetHostedZoneLimit(const Model::GetHostedZoneLimitRequest& request) const;
2557 
2558         /**
2559          * <p>Gets the specified limit for a specified hosted zone, for example, the
2560          * maximum number of records that you can create in the hosted zone. </p> <p>For
2561          * the default limit, see <a
2562          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
2563          * in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a
2564          * href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open
2565          * a case</a>.</p><p><h3>See Also:</h3>   <a
2566          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneLimit">AWS
2567          * API Reference</a></p>
2568          *
2569          * returns a future to the operation so that it can be executed in parallel to other requests.
2570          */
2571         virtual Model::GetHostedZoneLimitOutcomeCallable GetHostedZoneLimitCallable(const Model::GetHostedZoneLimitRequest& request) const;
2572 
2573         /**
2574          * <p>Gets the specified limit for a specified hosted zone, for example, the
2575          * maximum number of records that you can create in the hosted zone. </p> <p>For
2576          * the default limit, see <a
2577          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
2578          * in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a
2579          * href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open
2580          * a case</a>.</p><p><h3>See Also:</h3>   <a
2581          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneLimit">AWS
2582          * API Reference</a></p>
2583          *
2584          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2585          */
2586         virtual void GetHostedZoneLimitAsync(const Model::GetHostedZoneLimitRequest& request, const GetHostedZoneLimitResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2587 
2588         /**
2589          * <p>Gets information about a specified configuration for DNS query logging.</p>
2590          * <p>For more information about DNS query logs, see <a
2591          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a>
2592          * and <a
2593          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging
2594          * DNS Queries</a>.</p><p><h3>See Also:</h3>   <a
2595          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetQueryLoggingConfig">AWS
2596          * API Reference</a></p>
2597          */
2598         virtual Model::GetQueryLoggingConfigOutcome GetQueryLoggingConfig(const Model::GetQueryLoggingConfigRequest& request) const;
2599 
2600         /**
2601          * <p>Gets information about a specified configuration for DNS query logging.</p>
2602          * <p>For more information about DNS query logs, see <a
2603          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a>
2604          * and <a
2605          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging
2606          * DNS Queries</a>.</p><p><h3>See Also:</h3>   <a
2607          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetQueryLoggingConfig">AWS
2608          * API Reference</a></p>
2609          *
2610          * returns a future to the operation so that it can be executed in parallel to other requests.
2611          */
2612         virtual Model::GetQueryLoggingConfigOutcomeCallable GetQueryLoggingConfigCallable(const Model::GetQueryLoggingConfigRequest& request) const;
2613 
2614         /**
2615          * <p>Gets information about a specified configuration for DNS query logging.</p>
2616          * <p>For more information about DNS query logs, see <a
2617          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a>
2618          * and <a
2619          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging
2620          * DNS Queries</a>.</p><p><h3>See Also:</h3>   <a
2621          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetQueryLoggingConfig">AWS
2622          * API Reference</a></p>
2623          *
2624          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2625          */
2626         virtual void GetQueryLoggingConfigAsync(const Model::GetQueryLoggingConfigRequest& request, const GetQueryLoggingConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2627 
2628         /**
2629          * <p>Retrieves information about a specified reusable delegation set, including
2630          * the four name servers that are assigned to the delegation set.</p><p><h3>See
2631          * Also:</h3>   <a
2632          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSet">AWS
2633          * API Reference</a></p>
2634          */
2635         virtual Model::GetReusableDelegationSetOutcome GetReusableDelegationSet(const Model::GetReusableDelegationSetRequest& request) const;
2636 
2637         /**
2638          * <p>Retrieves information about a specified reusable delegation set, including
2639          * the four name servers that are assigned to the delegation set.</p><p><h3>See
2640          * Also:</h3>   <a
2641          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSet">AWS
2642          * API Reference</a></p>
2643          *
2644          * returns a future to the operation so that it can be executed in parallel to other requests.
2645          */
2646         virtual Model::GetReusableDelegationSetOutcomeCallable GetReusableDelegationSetCallable(const Model::GetReusableDelegationSetRequest& request) const;
2647 
2648         /**
2649          * <p>Retrieves information about a specified reusable delegation set, including
2650          * the four name servers that are assigned to the delegation set.</p><p><h3>See
2651          * Also:</h3>   <a
2652          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSet">AWS
2653          * API Reference</a></p>
2654          *
2655          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2656          */
2657         virtual void GetReusableDelegationSetAsync(const Model::GetReusableDelegationSetRequest& request, const GetReusableDelegationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2658 
2659         /**
2660          * <p>Gets the maximum number of hosted zones that you can associate with the
2661          * specified reusable delegation set.</p> <p>For the default limit, see <a
2662          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
2663          * in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a
2664          * href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open
2665          * a case</a>.</p><p><h3>See Also:</h3>   <a
2666          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSetLimit">AWS
2667          * API Reference</a></p>
2668          */
2669         virtual Model::GetReusableDelegationSetLimitOutcome GetReusableDelegationSetLimit(const Model::GetReusableDelegationSetLimitRequest& request) const;
2670 
2671         /**
2672          * <p>Gets the maximum number of hosted zones that you can associate with the
2673          * specified reusable delegation set.</p> <p>For the default limit, see <a
2674          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
2675          * in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a
2676          * href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open
2677          * a case</a>.</p><p><h3>See Also:</h3>   <a
2678          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSetLimit">AWS
2679          * API Reference</a></p>
2680          *
2681          * returns a future to the operation so that it can be executed in parallel to other requests.
2682          */
2683         virtual Model::GetReusableDelegationSetLimitOutcomeCallable GetReusableDelegationSetLimitCallable(const Model::GetReusableDelegationSetLimitRequest& request) const;
2684 
2685         /**
2686          * <p>Gets the maximum number of hosted zones that you can associate with the
2687          * specified reusable delegation set.</p> <p>For the default limit, see <a
2688          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a>
2689          * in the <i>Amazon Route 53 Developer Guide</i>. To request a higher limit, <a
2690          * href="https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-route53">open
2691          * a case</a>.</p><p><h3>See Also:</h3>   <a
2692          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSetLimit">AWS
2693          * API Reference</a></p>
2694          *
2695          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2696          */
2697         virtual void GetReusableDelegationSetLimitAsync(const Model::GetReusableDelegationSetLimitRequest& request, const GetReusableDelegationSetLimitResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2698 
2699         /**
2700          * <p>Gets information about a specific traffic policy version.</p> <p>For
2701          * information about how of deleting a traffic policy affects the response from
2702          * <code>GetTrafficPolicy</code>, see <a
2703          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteTrafficPolicy.html">DeleteTrafficPolicy</a>.
2704          * </p><p><h3>See Also:</h3>   <a
2705          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicy">AWS
2706          * API Reference</a></p>
2707          */
2708         virtual Model::GetTrafficPolicyOutcome GetTrafficPolicy(const Model::GetTrafficPolicyRequest& request) const;
2709 
2710         /**
2711          * <p>Gets information about a specific traffic policy version.</p> <p>For
2712          * information about how of deleting a traffic policy affects the response from
2713          * <code>GetTrafficPolicy</code>, see <a
2714          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteTrafficPolicy.html">DeleteTrafficPolicy</a>.
2715          * </p><p><h3>See Also:</h3>   <a
2716          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicy">AWS
2717          * API Reference</a></p>
2718          *
2719          * returns a future to the operation so that it can be executed in parallel to other requests.
2720          */
2721         virtual Model::GetTrafficPolicyOutcomeCallable GetTrafficPolicyCallable(const Model::GetTrafficPolicyRequest& request) const;
2722 
2723         /**
2724          * <p>Gets information about a specific traffic policy version.</p> <p>For
2725          * information about how of deleting a traffic policy affects the response from
2726          * <code>GetTrafficPolicy</code>, see <a
2727          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteTrafficPolicy.html">DeleteTrafficPolicy</a>.
2728          * </p><p><h3>See Also:</h3>   <a
2729          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicy">AWS
2730          * API Reference</a></p>
2731          *
2732          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2733          */
2734         virtual void GetTrafficPolicyAsync(const Model::GetTrafficPolicyRequest& request, const GetTrafficPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2735 
2736         /**
2737          * <p>Gets information about a specified traffic policy instance.</p>
2738          * <p>After you submit a <code>CreateTrafficPolicyInstance</code> or an
2739          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
2740          * Amazon Route 53 creates the resource record sets that are specified in the
2741          * traffic policy definition. For more information, see the <code>State</code>
2742          * response element.</p>   <p>In the Route 53 console, traffic policy
2743          * instances are known as policy records.</p> <p><h3>See Also:</h3>   <a
2744          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstance">AWS
2745          * API Reference</a></p>
2746          */
2747         virtual Model::GetTrafficPolicyInstanceOutcome GetTrafficPolicyInstance(const Model::GetTrafficPolicyInstanceRequest& request) const;
2748 
2749         /**
2750          * <p>Gets information about a specified traffic policy instance.</p>
2751          * <p>After you submit a <code>CreateTrafficPolicyInstance</code> or an
2752          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
2753          * Amazon Route 53 creates the resource record sets that are specified in the
2754          * traffic policy definition. For more information, see the <code>State</code>
2755          * response element.</p>   <p>In the Route 53 console, traffic policy
2756          * instances are known as policy records.</p> <p><h3>See Also:</h3>   <a
2757          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstance">AWS
2758          * API Reference</a></p>
2759          *
2760          * returns a future to the operation so that it can be executed in parallel to other requests.
2761          */
2762         virtual Model::GetTrafficPolicyInstanceOutcomeCallable GetTrafficPolicyInstanceCallable(const Model::GetTrafficPolicyInstanceRequest& request) const;
2763 
2764         /**
2765          * <p>Gets information about a specified traffic policy instance.</p>
2766          * <p>After you submit a <code>CreateTrafficPolicyInstance</code> or an
2767          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
2768          * Amazon Route 53 creates the resource record sets that are specified in the
2769          * traffic policy definition. For more information, see the <code>State</code>
2770          * response element.</p>   <p>In the Route 53 console, traffic policy
2771          * instances are known as policy records.</p> <p><h3>See Also:</h3>   <a
2772          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstance">AWS
2773          * API Reference</a></p>
2774          *
2775          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2776          */
2777         virtual void GetTrafficPolicyInstanceAsync(const Model::GetTrafficPolicyInstanceRequest& request, const GetTrafficPolicyInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2778 
2779         /**
2780          * <p>Gets the number of traffic policy instances that are associated with the
2781          * current Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
2782          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstanceCount">AWS
2783          * API Reference</a></p>
2784          */
2785         virtual Model::GetTrafficPolicyInstanceCountOutcome GetTrafficPolicyInstanceCount(const Model::GetTrafficPolicyInstanceCountRequest& request) const;
2786 
2787         /**
2788          * <p>Gets the number of traffic policy instances that are associated with the
2789          * current Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
2790          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstanceCount">AWS
2791          * API Reference</a></p>
2792          *
2793          * returns a future to the operation so that it can be executed in parallel to other requests.
2794          */
2795         virtual Model::GetTrafficPolicyInstanceCountOutcomeCallable GetTrafficPolicyInstanceCountCallable(const Model::GetTrafficPolicyInstanceCountRequest& request) const;
2796 
2797         /**
2798          * <p>Gets the number of traffic policy instances that are associated with the
2799          * current Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
2800          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstanceCount">AWS
2801          * API Reference</a></p>
2802          *
2803          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2804          */
2805         virtual void GetTrafficPolicyInstanceCountAsync(const Model::GetTrafficPolicyInstanceCountRequest& request, const GetTrafficPolicyInstanceCountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2806 
2807         /**
2808          * <p>Retrieves a list of supported geographic locations.</p> <p>Countries are
2809          * listed first, and continents are listed last. If Amazon Route 53 supports
2810          * subdivisions for a country (for example, states or provinces), the subdivisions
2811          * for that country are listed in alphabetical order immediately after the
2812          * corresponding country.</p> <p>Route 53 does not perform authorization for this
2813          * API because it retrieves information that is already available to the
2814          * public.</p> <p>For a list of supported geolocation codes, see the <a
2815          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GeoLocation.html">GeoLocation</a>
2816          * data type.</p><p><h3>See Also:</h3>   <a
2817          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListGeoLocations">AWS
2818          * API Reference</a></p>
2819          */
2820         virtual Model::ListGeoLocationsOutcome ListGeoLocations(const Model::ListGeoLocationsRequest& request) const;
2821 
2822         /**
2823          * <p>Retrieves a list of supported geographic locations.</p> <p>Countries are
2824          * listed first, and continents are listed last. If Amazon Route 53 supports
2825          * subdivisions for a country (for example, states or provinces), the subdivisions
2826          * for that country are listed in alphabetical order immediately after the
2827          * corresponding country.</p> <p>Route 53 does not perform authorization for this
2828          * API because it retrieves information that is already available to the
2829          * public.</p> <p>For a list of supported geolocation codes, see the <a
2830          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GeoLocation.html">GeoLocation</a>
2831          * data type.</p><p><h3>See Also:</h3>   <a
2832          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListGeoLocations">AWS
2833          * API Reference</a></p>
2834          *
2835          * returns a future to the operation so that it can be executed in parallel to other requests.
2836          */
2837         virtual Model::ListGeoLocationsOutcomeCallable ListGeoLocationsCallable(const Model::ListGeoLocationsRequest& request) const;
2838 
2839         /**
2840          * <p>Retrieves a list of supported geographic locations.</p> <p>Countries are
2841          * listed first, and continents are listed last. If Amazon Route 53 supports
2842          * subdivisions for a country (for example, states or provinces), the subdivisions
2843          * for that country are listed in alphabetical order immediately after the
2844          * corresponding country.</p> <p>Route 53 does not perform authorization for this
2845          * API because it retrieves information that is already available to the
2846          * public.</p> <p>For a list of supported geolocation codes, see the <a
2847          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GeoLocation.html">GeoLocation</a>
2848          * data type.</p><p><h3>See Also:</h3>   <a
2849          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListGeoLocations">AWS
2850          * API Reference</a></p>
2851          *
2852          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2853          */
2854         virtual void ListGeoLocationsAsync(const Model::ListGeoLocationsRequest& request, const ListGeoLocationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2855 
2856         /**
2857          * <p>Retrieve a list of the health checks that are associated with the current
2858          * Amazon Web Services account. </p><p><h3>See Also:</h3>   <a
2859          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHealthChecks">AWS
2860          * API Reference</a></p>
2861          */
2862         virtual Model::ListHealthChecksOutcome ListHealthChecks(const Model::ListHealthChecksRequest& request) const;
2863 
2864         /**
2865          * <p>Retrieve a list of the health checks that are associated with the current
2866          * Amazon Web Services account. </p><p><h3>See Also:</h3>   <a
2867          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHealthChecks">AWS
2868          * API Reference</a></p>
2869          *
2870          * returns a future to the operation so that it can be executed in parallel to other requests.
2871          */
2872         virtual Model::ListHealthChecksOutcomeCallable ListHealthChecksCallable(const Model::ListHealthChecksRequest& request) const;
2873 
2874         /**
2875          * <p>Retrieve a list of the health checks that are associated with the current
2876          * Amazon Web Services account. </p><p><h3>See Also:</h3>   <a
2877          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHealthChecks">AWS
2878          * API Reference</a></p>
2879          *
2880          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2881          */
2882         virtual void ListHealthChecksAsync(const Model::ListHealthChecksRequest& request, const ListHealthChecksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2883 
2884         /**
2885          * <p>Retrieves a list of the public and private hosted zones that are associated
2886          * with the current Amazon Web Services account. The response includes a
2887          * <code>HostedZones</code> child element for each hosted zone.</p> <p>Amazon Route
2888          * 53 returns a maximum of 100 items in each response. If you have a lot of hosted
2889          * zones, you can use the <code>maxitems</code> parameter to list them in groups of
2890          * up to 100.</p><p><h3>See Also:</h3>   <a
2891          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZones">AWS
2892          * API Reference</a></p>
2893          */
2894         virtual Model::ListHostedZonesOutcome ListHostedZones(const Model::ListHostedZonesRequest& request) const;
2895 
2896         /**
2897          * <p>Retrieves a list of the public and private hosted zones that are associated
2898          * with the current Amazon Web Services account. The response includes a
2899          * <code>HostedZones</code> child element for each hosted zone.</p> <p>Amazon Route
2900          * 53 returns a maximum of 100 items in each response. If you have a lot of hosted
2901          * zones, you can use the <code>maxitems</code> parameter to list them in groups of
2902          * up to 100.</p><p><h3>See Also:</h3>   <a
2903          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZones">AWS
2904          * API Reference</a></p>
2905          *
2906          * returns a future to the operation so that it can be executed in parallel to other requests.
2907          */
2908         virtual Model::ListHostedZonesOutcomeCallable ListHostedZonesCallable(const Model::ListHostedZonesRequest& request) const;
2909 
2910         /**
2911          * <p>Retrieves a list of the public and private hosted zones that are associated
2912          * with the current Amazon Web Services account. The response includes a
2913          * <code>HostedZones</code> child element for each hosted zone.</p> <p>Amazon Route
2914          * 53 returns a maximum of 100 items in each response. If you have a lot of hosted
2915          * zones, you can use the <code>maxitems</code> parameter to list them in groups of
2916          * up to 100.</p><p><h3>See Also:</h3>   <a
2917          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZones">AWS
2918          * API Reference</a></p>
2919          *
2920          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2921          */
2922         virtual void ListHostedZonesAsync(const Model::ListHostedZonesRequest& request, const ListHostedZonesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2923 
2924         /**
2925          * <p>Retrieves a list of your hosted zones in lexicographic order. The response
2926          * includes a <code>HostedZones</code> child element for each hosted zone created
2927          * by the current Amazon Web Services account. </p> <p>
2928          * <code>ListHostedZonesByName</code> sorts hosted zones by name with the labels
2929          * reversed. For example:</p> <p> <code>com.example.www.</code> </p> <p>Note the
2930          * trailing dot, which can change the sort order in some circumstances.</p> <p>If
2931          * the domain name includes escape characters or Punycode,
2932          * <code>ListHostedZonesByName</code> alphabetizes the domain name using the
2933          * escaped or Punycoded value, which is the format that Amazon Route 53 saves in
2934          * its database. For example, to create a hosted zone for exämple.com, you specify
2935          * ex\344mple.com for the domain name. <code>ListHostedZonesByName</code>
2936          * alphabetizes it as:</p> <p> <code>com.ex\344mple.</code> </p> <p>The labels are
2937          * reversed and alphabetized using the escaped value. For more information about
2938          * valid domain name formats, including internationalized domain names, see <a
2939          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html">DNS
2940          * Domain Name Format</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>
2941          * <p>Route 53 returns up to 100 items in each response. If you have a lot of
2942          * hosted zones, use the <code>MaxItems</code> parameter to list them in groups of
2943          * up to 100. The response includes values that help navigate from one group of
2944          * <code>MaxItems</code> hosted zones to the next:</p> <ul> <li> <p>The
2945          * <code>DNSName</code> and <code>HostedZoneId</code> elements in the response
2946          * contain the values, if any, specified for the <code>dnsname</code> and
2947          * <code>hostedzoneid</code> parameters in the request that produced the current
2948          * response.</p> </li> <li> <p>The <code>MaxItems</code> element in the response
2949          * contains the value, if any, that you specified for the <code>maxitems</code>
2950          * parameter in the request that produced the current response.</p> </li> <li>
2951          * <p>If the value of <code>IsTruncated</code> in the response is true, there are
2952          * more hosted zones associated with the current Amazon Web Services account. </p>
2953          * <p>If <code>IsTruncated</code> is false, this response includes the last hosted
2954          * zone that is associated with the current account. The <code>NextDNSName</code>
2955          * element and <code>NextHostedZoneId</code> elements are omitted from the
2956          * response.</p> </li> <li> <p>The <code>NextDNSName</code> and
2957          * <code>NextHostedZoneId</code> elements in the response contain the domain name
2958          * and the hosted zone ID of the next hosted zone that is associated with the
2959          * current Amazon Web Services account. If you want to list more hosted zones, make
2960          * another call to <code>ListHostedZonesByName</code>, and specify the value of
2961          * <code>NextDNSName</code> and <code>NextHostedZoneId</code> in the
2962          * <code>dnsname</code> and <code>hostedzoneid</code> parameters, respectively.</p>
2963          * </li> </ul><p><h3>See Also:</h3>   <a
2964          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByName">AWS
2965          * API Reference</a></p>
2966          */
2967         virtual Model::ListHostedZonesByNameOutcome ListHostedZonesByName(const Model::ListHostedZonesByNameRequest& request) const;
2968 
2969         /**
2970          * <p>Retrieves a list of your hosted zones in lexicographic order. The response
2971          * includes a <code>HostedZones</code> child element for each hosted zone created
2972          * by the current Amazon Web Services account. </p> <p>
2973          * <code>ListHostedZonesByName</code> sorts hosted zones by name with the labels
2974          * reversed. For example:</p> <p> <code>com.example.www.</code> </p> <p>Note the
2975          * trailing dot, which can change the sort order in some circumstances.</p> <p>If
2976          * the domain name includes escape characters or Punycode,
2977          * <code>ListHostedZonesByName</code> alphabetizes the domain name using the
2978          * escaped or Punycoded value, which is the format that Amazon Route 53 saves in
2979          * its database. For example, to create a hosted zone for exämple.com, you specify
2980          * ex\344mple.com for the domain name. <code>ListHostedZonesByName</code>
2981          * alphabetizes it as:</p> <p> <code>com.ex\344mple.</code> </p> <p>The labels are
2982          * reversed and alphabetized using the escaped value. For more information about
2983          * valid domain name formats, including internationalized domain names, see <a
2984          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html">DNS
2985          * Domain Name Format</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>
2986          * <p>Route 53 returns up to 100 items in each response. If you have a lot of
2987          * hosted zones, use the <code>MaxItems</code> parameter to list them in groups of
2988          * up to 100. The response includes values that help navigate from one group of
2989          * <code>MaxItems</code> hosted zones to the next:</p> <ul> <li> <p>The
2990          * <code>DNSName</code> and <code>HostedZoneId</code> elements in the response
2991          * contain the values, if any, specified for the <code>dnsname</code> and
2992          * <code>hostedzoneid</code> parameters in the request that produced the current
2993          * response.</p> </li> <li> <p>The <code>MaxItems</code> element in the response
2994          * contains the value, if any, that you specified for the <code>maxitems</code>
2995          * parameter in the request that produced the current response.</p> </li> <li>
2996          * <p>If the value of <code>IsTruncated</code> in the response is true, there are
2997          * more hosted zones associated with the current Amazon Web Services account. </p>
2998          * <p>If <code>IsTruncated</code> is false, this response includes the last hosted
2999          * zone that is associated with the current account. The <code>NextDNSName</code>
3000          * element and <code>NextHostedZoneId</code> elements are omitted from the
3001          * response.</p> </li> <li> <p>The <code>NextDNSName</code> and
3002          * <code>NextHostedZoneId</code> elements in the response contain the domain name
3003          * and the hosted zone ID of the next hosted zone that is associated with the
3004          * current Amazon Web Services account. If you want to list more hosted zones, make
3005          * another call to <code>ListHostedZonesByName</code>, and specify the value of
3006          * <code>NextDNSName</code> and <code>NextHostedZoneId</code> in the
3007          * <code>dnsname</code> and <code>hostedzoneid</code> parameters, respectively.</p>
3008          * </li> </ul><p><h3>See Also:</h3>   <a
3009          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByName">AWS
3010          * API Reference</a></p>
3011          *
3012          * returns a future to the operation so that it can be executed in parallel to other requests.
3013          */
3014         virtual Model::ListHostedZonesByNameOutcomeCallable ListHostedZonesByNameCallable(const Model::ListHostedZonesByNameRequest& request) const;
3015 
3016         /**
3017          * <p>Retrieves a list of your hosted zones in lexicographic order. The response
3018          * includes a <code>HostedZones</code> child element for each hosted zone created
3019          * by the current Amazon Web Services account. </p> <p>
3020          * <code>ListHostedZonesByName</code> sorts hosted zones by name with the labels
3021          * reversed. For example:</p> <p> <code>com.example.www.</code> </p> <p>Note the
3022          * trailing dot, which can change the sort order in some circumstances.</p> <p>If
3023          * the domain name includes escape characters or Punycode,
3024          * <code>ListHostedZonesByName</code> alphabetizes the domain name using the
3025          * escaped or Punycoded value, which is the format that Amazon Route 53 saves in
3026          * its database. For example, to create a hosted zone for exämple.com, you specify
3027          * ex\344mple.com for the domain name. <code>ListHostedZonesByName</code>
3028          * alphabetizes it as:</p> <p> <code>com.ex\344mple.</code> </p> <p>The labels are
3029          * reversed and alphabetized using the escaped value. For more information about
3030          * valid domain name formats, including internationalized domain names, see <a
3031          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html">DNS
3032          * Domain Name Format</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>
3033          * <p>Route 53 returns up to 100 items in each response. If you have a lot of
3034          * hosted zones, use the <code>MaxItems</code> parameter to list them in groups of
3035          * up to 100. The response includes values that help navigate from one group of
3036          * <code>MaxItems</code> hosted zones to the next:</p> <ul> <li> <p>The
3037          * <code>DNSName</code> and <code>HostedZoneId</code> elements in the response
3038          * contain the values, if any, specified for the <code>dnsname</code> and
3039          * <code>hostedzoneid</code> parameters in the request that produced the current
3040          * response.</p> </li> <li> <p>The <code>MaxItems</code> element in the response
3041          * contains the value, if any, that you specified for the <code>maxitems</code>
3042          * parameter in the request that produced the current response.</p> </li> <li>
3043          * <p>If the value of <code>IsTruncated</code> in the response is true, there are
3044          * more hosted zones associated with the current Amazon Web Services account. </p>
3045          * <p>If <code>IsTruncated</code> is false, this response includes the last hosted
3046          * zone that is associated with the current account. The <code>NextDNSName</code>
3047          * element and <code>NextHostedZoneId</code> elements are omitted from the
3048          * response.</p> </li> <li> <p>The <code>NextDNSName</code> and
3049          * <code>NextHostedZoneId</code> elements in the response contain the domain name
3050          * and the hosted zone ID of the next hosted zone that is associated with the
3051          * current Amazon Web Services account. If you want to list more hosted zones, make
3052          * another call to <code>ListHostedZonesByName</code>, and specify the value of
3053          * <code>NextDNSName</code> and <code>NextHostedZoneId</code> in the
3054          * <code>dnsname</code> and <code>hostedzoneid</code> parameters, respectively.</p>
3055          * </li> </ul><p><h3>See Also:</h3>   <a
3056          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByName">AWS
3057          * API Reference</a></p>
3058          *
3059          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3060          */
3061         virtual void ListHostedZonesByNameAsync(const Model::ListHostedZonesByNameRequest& request, const ListHostedZonesByNameResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3062 
3063         /**
3064          * <p>Lists all the private hosted zones that a specified VPC is associated with,
3065          * regardless of which Amazon Web Services account or Amazon Web Services service
3066          * owns the hosted zones. The <code>HostedZoneOwner</code> structure in the
3067          * response contains one of the following values:</p> <ul> <li> <p>An
3068          * <code>OwningAccount</code> element, which contains the account number of either
3069          * the current Amazon Web Services account or another Amazon Web Services account.
3070          * Some services, such as Cloud Map, create hosted zones using the current account.
3071          * </p> </li> <li> <p>An <code>OwningService</code> element, which identifies the
3072          * Amazon Web Services service that created and owns the hosted zone. For example,
3073          * if a hosted zone was created by Amazon Elastic File System (Amazon EFS), the
3074          * value of <code>Owner</code> is <code>efs.amazonaws.com</code>. </p> </li>
3075          * </ul><p><h3>See Also:</h3>   <a
3076          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByVPC">AWS
3077          * API Reference</a></p>
3078          */
3079         virtual Model::ListHostedZonesByVPCOutcome ListHostedZonesByVPC(const Model::ListHostedZonesByVPCRequest& request) const;
3080 
3081         /**
3082          * <p>Lists all the private hosted zones that a specified VPC is associated with,
3083          * regardless of which Amazon Web Services account or Amazon Web Services service
3084          * owns the hosted zones. The <code>HostedZoneOwner</code> structure in the
3085          * response contains one of the following values:</p> <ul> <li> <p>An
3086          * <code>OwningAccount</code> element, which contains the account number of either
3087          * the current Amazon Web Services account or another Amazon Web Services account.
3088          * Some services, such as Cloud Map, create hosted zones using the current account.
3089          * </p> </li> <li> <p>An <code>OwningService</code> element, which identifies the
3090          * Amazon Web Services service that created and owns the hosted zone. For example,
3091          * if a hosted zone was created by Amazon Elastic File System (Amazon EFS), the
3092          * value of <code>Owner</code> is <code>efs.amazonaws.com</code>. </p> </li>
3093          * </ul><p><h3>See Also:</h3>   <a
3094          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByVPC">AWS
3095          * API Reference</a></p>
3096          *
3097          * returns a future to the operation so that it can be executed in parallel to other requests.
3098          */
3099         virtual Model::ListHostedZonesByVPCOutcomeCallable ListHostedZonesByVPCCallable(const Model::ListHostedZonesByVPCRequest& request) const;
3100 
3101         /**
3102          * <p>Lists all the private hosted zones that a specified VPC is associated with,
3103          * regardless of which Amazon Web Services account or Amazon Web Services service
3104          * owns the hosted zones. The <code>HostedZoneOwner</code> structure in the
3105          * response contains one of the following values:</p> <ul> <li> <p>An
3106          * <code>OwningAccount</code> element, which contains the account number of either
3107          * the current Amazon Web Services account or another Amazon Web Services account.
3108          * Some services, such as Cloud Map, create hosted zones using the current account.
3109          * </p> </li> <li> <p>An <code>OwningService</code> element, which identifies the
3110          * Amazon Web Services service that created and owns the hosted zone. For example,
3111          * if a hosted zone was created by Amazon Elastic File System (Amazon EFS), the
3112          * value of <code>Owner</code> is <code>efs.amazonaws.com</code>. </p> </li>
3113          * </ul><p><h3>See Also:</h3>   <a
3114          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByVPC">AWS
3115          * API Reference</a></p>
3116          *
3117          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3118          */
3119         virtual void ListHostedZonesByVPCAsync(const Model::ListHostedZonesByVPCRequest& request, const ListHostedZonesByVPCResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3120 
3121         /**
3122          * <p>Lists the configurations for DNS query logging that are associated with the
3123          * current Amazon Web Services account or the configuration that is associated with
3124          * a specified hosted zone.</p> <p>For more information about DNS query logs, see
3125          * <a
3126          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a>.
3127          * Additional information, including the format of DNS query logs, appears in <a
3128          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging
3129          * DNS Queries</a> in the <i>Amazon Route 53 Developer Guide</i>.</p><p><h3>See
3130          * Also:</h3>   <a
3131          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListQueryLoggingConfigs">AWS
3132          * API Reference</a></p>
3133          */
3134         virtual Model::ListQueryLoggingConfigsOutcome ListQueryLoggingConfigs(const Model::ListQueryLoggingConfigsRequest& request) const;
3135 
3136         /**
3137          * <p>Lists the configurations for DNS query logging that are associated with the
3138          * current Amazon Web Services account or the configuration that is associated with
3139          * a specified hosted zone.</p> <p>For more information about DNS query logs, see
3140          * <a
3141          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a>.
3142          * Additional information, including the format of DNS query logs, appears in <a
3143          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging
3144          * DNS Queries</a> in the <i>Amazon Route 53 Developer Guide</i>.</p><p><h3>See
3145          * Also:</h3>   <a
3146          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListQueryLoggingConfigs">AWS
3147          * API Reference</a></p>
3148          *
3149          * returns a future to the operation so that it can be executed in parallel to other requests.
3150          */
3151         virtual Model::ListQueryLoggingConfigsOutcomeCallable ListQueryLoggingConfigsCallable(const Model::ListQueryLoggingConfigsRequest& request) const;
3152 
3153         /**
3154          * <p>Lists the configurations for DNS query logging that are associated with the
3155          * current Amazon Web Services account or the configuration that is associated with
3156          * a specified hosted zone.</p> <p>For more information about DNS query logs, see
3157          * <a
3158          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html">CreateQueryLoggingConfig</a>.
3159          * Additional information, including the format of DNS query logs, appears in <a
3160          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html">Logging
3161          * DNS Queries</a> in the <i>Amazon Route 53 Developer Guide</i>.</p><p><h3>See
3162          * Also:</h3>   <a
3163          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListQueryLoggingConfigs">AWS
3164          * API Reference</a></p>
3165          *
3166          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3167          */
3168         virtual void ListQueryLoggingConfigsAsync(const Model::ListQueryLoggingConfigsRequest& request, const ListQueryLoggingConfigsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3169 
3170         /**
3171          * <p>Lists the resource record sets in a specified hosted zone.</p> <p>
3172          * <code>ListResourceRecordSets</code> returns up to 300 resource record sets at a
3173          * time in ASCII order, beginning at a position specified by the <code>name</code>
3174          * and <code>type</code> elements.</p> <p> <b>Sort order</b> </p> <p>
3175          * <code>ListResourceRecordSets</code> sorts results first by DNS name with the
3176          * labels reversed, for example:</p> <p> <code>com.example.www.</code> </p> <p>Note
3177          * the trailing dot, which can change the sort order when the record name contains
3178          * characters that appear before <code>.</code> (decimal 46) in the ASCII table.
3179          * These characters include the following: <code>! " # $ % &amp; ' ( ) * + ,
3180          * -</code> </p> <p>When multiple records have the same DNS name,
3181          * <code>ListResourceRecordSets</code> sorts results by the record type.</p> <p>
3182          * <b>Specifying where to start listing records</b> </p> <p>You can use the name
3183          * and type elements to specify the resource record set that the list begins
3184          * with:</p> <dl> <dt>If you do not specify Name or Type</dt> <dd> <p>The results
3185          * begin with the first resource record set that the hosted zone contains.</p>
3186          * </dd> <dt>If you specify Name but not Type</dt> <dd> <p>The results begin with
3187          * the first resource record set in the list whose name is greater than or equal to
3188          * <code>Name</code>.</p> </dd> <dt>If you specify Type but not Name</dt> <dd>
3189          * <p>Amazon Route 53 returns the <code>InvalidInput</code> error.</p> </dd> <dt>If
3190          * you specify both Name and Type</dt> <dd> <p>The results begin with the first
3191          * resource record set in the list whose name is greater than or equal to
3192          * <code>Name</code>, and whose type is greater than or equal to
3193          * <code>Type</code>.</p> </dd> </dl> <p> <b>Resource record sets that are
3194          * PENDING</b> </p> <p>This action returns the most current version of the records.
3195          * This includes records that are <code>PENDING</code>, and that are not yet
3196          * available on all Route 53 DNS servers.</p> <p> <b>Changing resource record
3197          * sets</b> </p> <p>To ensure that you get an accurate listing of the resource
3198          * record sets for a hosted zone at a point in time, do not submit a
3199          * <code>ChangeResourceRecordSets</code> request while you're paging through the
3200          * results of a <code>ListResourceRecordSets</code> request. If you do, some pages
3201          * may display results without the latest changes while other pages display results
3202          * with the latest changes.</p> <p> <b>Displaying the next page of results</b> </p>
3203          * <p>If a <code>ListResourceRecordSets</code> command returns more than one page
3204          * of results, the value of <code>IsTruncated</code> is <code>true</code>. To
3205          * display the next page of results, get the values of <code>NextRecordName</code>,
3206          * <code>NextRecordType</code>, and <code>NextRecordIdentifier</code> (if any) from
3207          * the response. Then submit another <code>ListResourceRecordSets</code> request,
3208          * and specify those values for <code>StartRecordName</code>,
3209          * <code>StartRecordType</code>, and
3210          * <code>StartRecordIdentifier</code>.</p><p><h3>See Also:</h3>   <a
3211          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListResourceRecordSets">AWS
3212          * API Reference</a></p>
3213          */
3214         virtual Model::ListResourceRecordSetsOutcome ListResourceRecordSets(const Model::ListResourceRecordSetsRequest& request) const;
3215 
3216         /**
3217          * <p>Lists the resource record sets in a specified hosted zone.</p> <p>
3218          * <code>ListResourceRecordSets</code> returns up to 300 resource record sets at a
3219          * time in ASCII order, beginning at a position specified by the <code>name</code>
3220          * and <code>type</code> elements.</p> <p> <b>Sort order</b> </p> <p>
3221          * <code>ListResourceRecordSets</code> sorts results first by DNS name with the
3222          * labels reversed, for example:</p> <p> <code>com.example.www.</code> </p> <p>Note
3223          * the trailing dot, which can change the sort order when the record name contains
3224          * characters that appear before <code>.</code> (decimal 46) in the ASCII table.
3225          * These characters include the following: <code>! " # $ % &amp; ' ( ) * + ,
3226          * -</code> </p> <p>When multiple records have the same DNS name,
3227          * <code>ListResourceRecordSets</code> sorts results by the record type.</p> <p>
3228          * <b>Specifying where to start listing records</b> </p> <p>You can use the name
3229          * and type elements to specify the resource record set that the list begins
3230          * with:</p> <dl> <dt>If you do not specify Name or Type</dt> <dd> <p>The results
3231          * begin with the first resource record set that the hosted zone contains.</p>
3232          * </dd> <dt>If you specify Name but not Type</dt> <dd> <p>The results begin with
3233          * the first resource record set in the list whose name is greater than or equal to
3234          * <code>Name</code>.</p> </dd> <dt>If you specify Type but not Name</dt> <dd>
3235          * <p>Amazon Route 53 returns the <code>InvalidInput</code> error.</p> </dd> <dt>If
3236          * you specify both Name and Type</dt> <dd> <p>The results begin with the first
3237          * resource record set in the list whose name is greater than or equal to
3238          * <code>Name</code>, and whose type is greater than or equal to
3239          * <code>Type</code>.</p> </dd> </dl> <p> <b>Resource record sets that are
3240          * PENDING</b> </p> <p>This action returns the most current version of the records.
3241          * This includes records that are <code>PENDING</code>, and that are not yet
3242          * available on all Route 53 DNS servers.</p> <p> <b>Changing resource record
3243          * sets</b> </p> <p>To ensure that you get an accurate listing of the resource
3244          * record sets for a hosted zone at a point in time, do not submit a
3245          * <code>ChangeResourceRecordSets</code> request while you're paging through the
3246          * results of a <code>ListResourceRecordSets</code> request. If you do, some pages
3247          * may display results without the latest changes while other pages display results
3248          * with the latest changes.</p> <p> <b>Displaying the next page of results</b> </p>
3249          * <p>If a <code>ListResourceRecordSets</code> command returns more than one page
3250          * of results, the value of <code>IsTruncated</code> is <code>true</code>. To
3251          * display the next page of results, get the values of <code>NextRecordName</code>,
3252          * <code>NextRecordType</code>, and <code>NextRecordIdentifier</code> (if any) from
3253          * the response. Then submit another <code>ListResourceRecordSets</code> request,
3254          * and specify those values for <code>StartRecordName</code>,
3255          * <code>StartRecordType</code>, and
3256          * <code>StartRecordIdentifier</code>.</p><p><h3>See Also:</h3>   <a
3257          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListResourceRecordSets">AWS
3258          * API Reference</a></p>
3259          *
3260          * returns a future to the operation so that it can be executed in parallel to other requests.
3261          */
3262         virtual Model::ListResourceRecordSetsOutcomeCallable ListResourceRecordSetsCallable(const Model::ListResourceRecordSetsRequest& request) const;
3263 
3264         /**
3265          * <p>Lists the resource record sets in a specified hosted zone.</p> <p>
3266          * <code>ListResourceRecordSets</code> returns up to 300 resource record sets at a
3267          * time in ASCII order, beginning at a position specified by the <code>name</code>
3268          * and <code>type</code> elements.</p> <p> <b>Sort order</b> </p> <p>
3269          * <code>ListResourceRecordSets</code> sorts results first by DNS name with the
3270          * labels reversed, for example:</p> <p> <code>com.example.www.</code> </p> <p>Note
3271          * the trailing dot, which can change the sort order when the record name contains
3272          * characters that appear before <code>.</code> (decimal 46) in the ASCII table.
3273          * These characters include the following: <code>! " # $ % &amp; ' ( ) * + ,
3274          * -</code> </p> <p>When multiple records have the same DNS name,
3275          * <code>ListResourceRecordSets</code> sorts results by the record type.</p> <p>
3276          * <b>Specifying where to start listing records</b> </p> <p>You can use the name
3277          * and type elements to specify the resource record set that the list begins
3278          * with:</p> <dl> <dt>If you do not specify Name or Type</dt> <dd> <p>The results
3279          * begin with the first resource record set that the hosted zone contains.</p>
3280          * </dd> <dt>If you specify Name but not Type</dt> <dd> <p>The results begin with
3281          * the first resource record set in the list whose name is greater than or equal to
3282          * <code>Name</code>.</p> </dd> <dt>If you specify Type but not Name</dt> <dd>
3283          * <p>Amazon Route 53 returns the <code>InvalidInput</code> error.</p> </dd> <dt>If
3284          * you specify both Name and Type</dt> <dd> <p>The results begin with the first
3285          * resource record set in the list whose name is greater than or equal to
3286          * <code>Name</code>, and whose type is greater than or equal to
3287          * <code>Type</code>.</p> </dd> </dl> <p> <b>Resource record sets that are
3288          * PENDING</b> </p> <p>This action returns the most current version of the records.
3289          * This includes records that are <code>PENDING</code>, and that are not yet
3290          * available on all Route 53 DNS servers.</p> <p> <b>Changing resource record
3291          * sets</b> </p> <p>To ensure that you get an accurate listing of the resource
3292          * record sets for a hosted zone at a point in time, do not submit a
3293          * <code>ChangeResourceRecordSets</code> request while you're paging through the
3294          * results of a <code>ListResourceRecordSets</code> request. If you do, some pages
3295          * may display results without the latest changes while other pages display results
3296          * with the latest changes.</p> <p> <b>Displaying the next page of results</b> </p>
3297          * <p>If a <code>ListResourceRecordSets</code> command returns more than one page
3298          * of results, the value of <code>IsTruncated</code> is <code>true</code>. To
3299          * display the next page of results, get the values of <code>NextRecordName</code>,
3300          * <code>NextRecordType</code>, and <code>NextRecordIdentifier</code> (if any) from
3301          * the response. Then submit another <code>ListResourceRecordSets</code> request,
3302          * and specify those values for <code>StartRecordName</code>,
3303          * <code>StartRecordType</code>, and
3304          * <code>StartRecordIdentifier</code>.</p><p><h3>See Also:</h3>   <a
3305          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListResourceRecordSets">AWS
3306          * API Reference</a></p>
3307          *
3308          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3309          */
3310         virtual void ListResourceRecordSetsAsync(const Model::ListResourceRecordSetsRequest& request, const ListResourceRecordSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3311 
3312         /**
3313          * <p>Retrieves a list of the reusable delegation sets that are associated with the
3314          * current Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
3315          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListReusableDelegationSets">AWS
3316          * API Reference</a></p>
3317          */
3318         virtual Model::ListReusableDelegationSetsOutcome ListReusableDelegationSets(const Model::ListReusableDelegationSetsRequest& request) const;
3319 
3320         /**
3321          * <p>Retrieves a list of the reusable delegation sets that are associated with the
3322          * current Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
3323          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListReusableDelegationSets">AWS
3324          * API Reference</a></p>
3325          *
3326          * returns a future to the operation so that it can be executed in parallel to other requests.
3327          */
3328         virtual Model::ListReusableDelegationSetsOutcomeCallable ListReusableDelegationSetsCallable(const Model::ListReusableDelegationSetsRequest& request) const;
3329 
3330         /**
3331          * <p>Retrieves a list of the reusable delegation sets that are associated with the
3332          * current Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
3333          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListReusableDelegationSets">AWS
3334          * API Reference</a></p>
3335          *
3336          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3337          */
3338         virtual void ListReusableDelegationSetsAsync(const Model::ListReusableDelegationSetsRequest& request, const ListReusableDelegationSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3339 
3340         /**
3341          * <p>Lists tags for one health check or hosted zone. </p> <p>For information about
3342          * using tags for cost allocation, see <a
3343          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using
3344          * Cost Allocation Tags</a> in the <i>Billing and Cost Management User
3345          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3346          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResource">AWS
3347          * API Reference</a></p>
3348          */
3349         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
3350 
3351         /**
3352          * <p>Lists tags for one health check or hosted zone. </p> <p>For information about
3353          * using tags for cost allocation, see <a
3354          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using
3355          * Cost Allocation Tags</a> in the <i>Billing and Cost Management User
3356          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3357          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResource">AWS
3358          * API Reference</a></p>
3359          *
3360          * returns a future to the operation so that it can be executed in parallel to other requests.
3361          */
3362         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
3363 
3364         /**
3365          * <p>Lists tags for one health check or hosted zone. </p> <p>For information about
3366          * using tags for cost allocation, see <a
3367          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using
3368          * Cost Allocation Tags</a> in the <i>Billing and Cost Management User
3369          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3370          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResource">AWS
3371          * API Reference</a></p>
3372          *
3373          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3374          */
3375         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3376 
3377         /**
3378          * <p>Lists tags for up to 10 health checks or hosted zones.</p> <p>For information
3379          * about using tags for cost allocation, see <a
3380          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using
3381          * Cost Allocation Tags</a> in the <i>Billing and Cost Management User
3382          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3383          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResources">AWS
3384          * API Reference</a></p>
3385          */
3386         virtual Model::ListTagsForResourcesOutcome ListTagsForResources(const Model::ListTagsForResourcesRequest& request) const;
3387 
3388         /**
3389          * <p>Lists tags for up to 10 health checks or hosted zones.</p> <p>For information
3390          * about using tags for cost allocation, see <a
3391          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using
3392          * Cost Allocation Tags</a> in the <i>Billing and Cost Management User
3393          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3394          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResources">AWS
3395          * API Reference</a></p>
3396          *
3397          * returns a future to the operation so that it can be executed in parallel to other requests.
3398          */
3399         virtual Model::ListTagsForResourcesOutcomeCallable ListTagsForResourcesCallable(const Model::ListTagsForResourcesRequest& request) const;
3400 
3401         /**
3402          * <p>Lists tags for up to 10 health checks or hosted zones.</p> <p>For information
3403          * about using tags for cost allocation, see <a
3404          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using
3405          * Cost Allocation Tags</a> in the <i>Billing and Cost Management User
3406          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3407          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResources">AWS
3408          * API Reference</a></p>
3409          *
3410          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3411          */
3412         virtual void ListTagsForResourcesAsync(const Model::ListTagsForResourcesRequest& request, const ListTagsForResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3413 
3414         /**
3415          * <p>Gets information about the latest version for every traffic policy that is
3416          * associated with the current Amazon Web Services account. Policies are listed in
3417          * the order that they were created in. </p> <p>For information about how of
3418          * deleting a traffic policy affects the response from
3419          * <code>ListTrafficPolicies</code>, see <a
3420          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteTrafficPolicy.html">DeleteTrafficPolicy</a>.
3421          * </p><p><h3>See Also:</h3>   <a
3422          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicies">AWS
3423          * API Reference</a></p>
3424          */
3425         virtual Model::ListTrafficPoliciesOutcome ListTrafficPolicies(const Model::ListTrafficPoliciesRequest& request) const;
3426 
3427         /**
3428          * <p>Gets information about the latest version for every traffic policy that is
3429          * associated with the current Amazon Web Services account. Policies are listed in
3430          * the order that they were created in. </p> <p>For information about how of
3431          * deleting a traffic policy affects the response from
3432          * <code>ListTrafficPolicies</code>, see <a
3433          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteTrafficPolicy.html">DeleteTrafficPolicy</a>.
3434          * </p><p><h3>See Also:</h3>   <a
3435          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicies">AWS
3436          * API Reference</a></p>
3437          *
3438          * returns a future to the operation so that it can be executed in parallel to other requests.
3439          */
3440         virtual Model::ListTrafficPoliciesOutcomeCallable ListTrafficPoliciesCallable(const Model::ListTrafficPoliciesRequest& request) const;
3441 
3442         /**
3443          * <p>Gets information about the latest version for every traffic policy that is
3444          * associated with the current Amazon Web Services account. Policies are listed in
3445          * the order that they were created in. </p> <p>For information about how of
3446          * deleting a traffic policy affects the response from
3447          * <code>ListTrafficPolicies</code>, see <a
3448          * href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteTrafficPolicy.html">DeleteTrafficPolicy</a>.
3449          * </p><p><h3>See Also:</h3>   <a
3450          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicies">AWS
3451          * API Reference</a></p>
3452          *
3453          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3454          */
3455         virtual void ListTrafficPoliciesAsync(const Model::ListTrafficPoliciesRequest& request, const ListTrafficPoliciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3456 
3457         /**
3458          * <p>Gets information about the traffic policy instances that you created by using
3459          * the current Amazon Web Services account.</p>  <p>After you submit an
3460          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
3461          * Amazon Route 53 creates the resource record sets that are specified in the
3462          * traffic policy definition. For more information, see the <code>State</code>
3463          * response element.</p>  <p>Route 53 returns a maximum of 100 items in each
3464          * response. If you have a lot of traffic policy instances, you can use the
3465          * <code>MaxItems</code> parameter to list them in groups of up to
3466          * 100.</p><p><h3>See Also:</h3>   <a
3467          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstances">AWS
3468          * API Reference</a></p>
3469          */
3470         virtual Model::ListTrafficPolicyInstancesOutcome ListTrafficPolicyInstances(const Model::ListTrafficPolicyInstancesRequest& request) const;
3471 
3472         /**
3473          * <p>Gets information about the traffic policy instances that you created by using
3474          * the current Amazon Web Services account.</p>  <p>After you submit an
3475          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
3476          * Amazon Route 53 creates the resource record sets that are specified in the
3477          * traffic policy definition. For more information, see the <code>State</code>
3478          * response element.</p>  <p>Route 53 returns a maximum of 100 items in each
3479          * response. If you have a lot of traffic policy instances, you can use the
3480          * <code>MaxItems</code> parameter to list them in groups of up to
3481          * 100.</p><p><h3>See Also:</h3>   <a
3482          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstances">AWS
3483          * API Reference</a></p>
3484          *
3485          * returns a future to the operation so that it can be executed in parallel to other requests.
3486          */
3487         virtual Model::ListTrafficPolicyInstancesOutcomeCallable ListTrafficPolicyInstancesCallable(const Model::ListTrafficPolicyInstancesRequest& request) const;
3488 
3489         /**
3490          * <p>Gets information about the traffic policy instances that you created by using
3491          * the current Amazon Web Services account.</p>  <p>After you submit an
3492          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
3493          * Amazon Route 53 creates the resource record sets that are specified in the
3494          * traffic policy definition. For more information, see the <code>State</code>
3495          * response element.</p>  <p>Route 53 returns a maximum of 100 items in each
3496          * response. If you have a lot of traffic policy instances, you can use the
3497          * <code>MaxItems</code> parameter to list them in groups of up to
3498          * 100.</p><p><h3>See Also:</h3>   <a
3499          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstances">AWS
3500          * API Reference</a></p>
3501          *
3502          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3503          */
3504         virtual void ListTrafficPolicyInstancesAsync(const Model::ListTrafficPolicyInstancesRequest& request, const ListTrafficPolicyInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3505 
3506         /**
3507          * <p>Gets information about the traffic policy instances that you created in a
3508          * specified hosted zone.</p>  <p>After you submit a
3509          * <code>CreateTrafficPolicyInstance</code> or an
3510          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
3511          * Amazon Route 53 creates the resource record sets that are specified in the
3512          * traffic policy definition. For more information, see the <code>State</code>
3513          * response element.</p>  <p>Route 53 returns a maximum of 100 items in each
3514          * response. If you have a lot of traffic policy instances, you can use the
3515          * <code>MaxItems</code> parameter to list them in groups of up to
3516          * 100.</p><p><h3>See Also:</h3>   <a
3517          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByHostedZone">AWS
3518          * API Reference</a></p>
3519          */
3520         virtual Model::ListTrafficPolicyInstancesByHostedZoneOutcome ListTrafficPolicyInstancesByHostedZone(const Model::ListTrafficPolicyInstancesByHostedZoneRequest& request) const;
3521 
3522         /**
3523          * <p>Gets information about the traffic policy instances that you created in a
3524          * specified hosted zone.</p>  <p>After you submit a
3525          * <code>CreateTrafficPolicyInstance</code> or an
3526          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
3527          * Amazon Route 53 creates the resource record sets that are specified in the
3528          * traffic policy definition. For more information, see the <code>State</code>
3529          * response element.</p>  <p>Route 53 returns a maximum of 100 items in each
3530          * response. If you have a lot of traffic policy instances, you can use the
3531          * <code>MaxItems</code> parameter to list them in groups of up to
3532          * 100.</p><p><h3>See Also:</h3>   <a
3533          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByHostedZone">AWS
3534          * API Reference</a></p>
3535          *
3536          * returns a future to the operation so that it can be executed in parallel to other requests.
3537          */
3538         virtual Model::ListTrafficPolicyInstancesByHostedZoneOutcomeCallable ListTrafficPolicyInstancesByHostedZoneCallable(const Model::ListTrafficPolicyInstancesByHostedZoneRequest& request) const;
3539 
3540         /**
3541          * <p>Gets information about the traffic policy instances that you created in a
3542          * specified hosted zone.</p>  <p>After you submit a
3543          * <code>CreateTrafficPolicyInstance</code> or an
3544          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
3545          * Amazon Route 53 creates the resource record sets that are specified in the
3546          * traffic policy definition. For more information, see the <code>State</code>
3547          * response element.</p>  <p>Route 53 returns a maximum of 100 items in each
3548          * response. If you have a lot of traffic policy instances, you can use the
3549          * <code>MaxItems</code> parameter to list them in groups of up to
3550          * 100.</p><p><h3>See Also:</h3>   <a
3551          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByHostedZone">AWS
3552          * API Reference</a></p>
3553          *
3554          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3555          */
3556         virtual void ListTrafficPolicyInstancesByHostedZoneAsync(const Model::ListTrafficPolicyInstancesByHostedZoneRequest& request, const ListTrafficPolicyInstancesByHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3557 
3558         /**
3559          * <p>Gets information about the traffic policy instances that you created by using
3560          * a specify traffic policy version.</p>  <p>After you submit a
3561          * <code>CreateTrafficPolicyInstance</code> or an
3562          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
3563          * Amazon Route 53 creates the resource record sets that are specified in the
3564          * traffic policy definition. For more information, see the <code>State</code>
3565          * response element.</p>  <p>Route 53 returns a maximum of 100 items in each
3566          * response. If you have a lot of traffic policy instances, you can use the
3567          * <code>MaxItems</code> parameter to list them in groups of up to
3568          * 100.</p><p><h3>See Also:</h3>   <a
3569          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByPolicy">AWS
3570          * API Reference</a></p>
3571          */
3572         virtual Model::ListTrafficPolicyInstancesByPolicyOutcome ListTrafficPolicyInstancesByPolicy(const Model::ListTrafficPolicyInstancesByPolicyRequest& request) const;
3573 
3574         /**
3575          * <p>Gets information about the traffic policy instances that you created by using
3576          * a specify traffic policy version.</p>  <p>After you submit a
3577          * <code>CreateTrafficPolicyInstance</code> or an
3578          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
3579          * Amazon Route 53 creates the resource record sets that are specified in the
3580          * traffic policy definition. For more information, see the <code>State</code>
3581          * response element.</p>  <p>Route 53 returns a maximum of 100 items in each
3582          * response. If you have a lot of traffic policy instances, you can use the
3583          * <code>MaxItems</code> parameter to list them in groups of up to
3584          * 100.</p><p><h3>See Also:</h3>   <a
3585          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByPolicy">AWS
3586          * API Reference</a></p>
3587          *
3588          * returns a future to the operation so that it can be executed in parallel to other requests.
3589          */
3590         virtual Model::ListTrafficPolicyInstancesByPolicyOutcomeCallable ListTrafficPolicyInstancesByPolicyCallable(const Model::ListTrafficPolicyInstancesByPolicyRequest& request) const;
3591 
3592         /**
3593          * <p>Gets information about the traffic policy instances that you created by using
3594          * a specify traffic policy version.</p>  <p>After you submit a
3595          * <code>CreateTrafficPolicyInstance</code> or an
3596          * <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while
3597          * Amazon Route 53 creates the resource record sets that are specified in the
3598          * traffic policy definition. For more information, see the <code>State</code>
3599          * response element.</p>  <p>Route 53 returns a maximum of 100 items in each
3600          * response. If you have a lot of traffic policy instances, you can use the
3601          * <code>MaxItems</code> parameter to list them in groups of up to
3602          * 100.</p><p><h3>See Also:</h3>   <a
3603          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByPolicy">AWS
3604          * API Reference</a></p>
3605          *
3606          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3607          */
3608         virtual void ListTrafficPolicyInstancesByPolicyAsync(const Model::ListTrafficPolicyInstancesByPolicyRequest& request, const ListTrafficPolicyInstancesByPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3609 
3610         /**
3611          * <p>Gets information about all of the versions for a specified traffic
3612          * policy.</p> <p>Traffic policy versions are listed in numerical order by
3613          * <code>VersionNumber</code>.</p><p><h3>See Also:</h3>   <a
3614          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyVersions">AWS
3615          * API Reference</a></p>
3616          */
3617         virtual Model::ListTrafficPolicyVersionsOutcome ListTrafficPolicyVersions(const Model::ListTrafficPolicyVersionsRequest& request) const;
3618 
3619         /**
3620          * <p>Gets information about all of the versions for a specified traffic
3621          * policy.</p> <p>Traffic policy versions are listed in numerical order by
3622          * <code>VersionNumber</code>.</p><p><h3>See Also:</h3>   <a
3623          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyVersions">AWS
3624          * API Reference</a></p>
3625          *
3626          * returns a future to the operation so that it can be executed in parallel to other requests.
3627          */
3628         virtual Model::ListTrafficPolicyVersionsOutcomeCallable ListTrafficPolicyVersionsCallable(const Model::ListTrafficPolicyVersionsRequest& request) const;
3629 
3630         /**
3631          * <p>Gets information about all of the versions for a specified traffic
3632          * policy.</p> <p>Traffic policy versions are listed in numerical order by
3633          * <code>VersionNumber</code>.</p><p><h3>See Also:</h3>   <a
3634          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyVersions">AWS
3635          * API Reference</a></p>
3636          *
3637          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3638          */
3639         virtual void ListTrafficPolicyVersionsAsync(const Model::ListTrafficPolicyVersionsRequest& request, const ListTrafficPolicyVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3640 
3641         /**
3642          * <p>Gets a list of the VPCs that were created by other accounts and that can be
3643          * associated with a specified hosted zone because you've submitted one or more
3644          * <code>CreateVPCAssociationAuthorization</code> requests. </p> <p>The response
3645          * includes a <code>VPCs</code> element with a <code>VPC</code> child element for
3646          * each VPC that can be associated with the hosted zone.</p><p><h3>See Also:</h3>
3647          * <a
3648          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListVPCAssociationAuthorizations">AWS
3649          * API Reference</a></p>
3650          */
3651         virtual Model::ListVPCAssociationAuthorizationsOutcome ListVPCAssociationAuthorizations(const Model::ListVPCAssociationAuthorizationsRequest& request) const;
3652 
3653         /**
3654          * <p>Gets a list of the VPCs that were created by other accounts and that can be
3655          * associated with a specified hosted zone because you've submitted one or more
3656          * <code>CreateVPCAssociationAuthorization</code> requests. </p> <p>The response
3657          * includes a <code>VPCs</code> element with a <code>VPC</code> child element for
3658          * each VPC that can be associated with the hosted zone.</p><p><h3>See Also:</h3>
3659          * <a
3660          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListVPCAssociationAuthorizations">AWS
3661          * API Reference</a></p>
3662          *
3663          * returns a future to the operation so that it can be executed in parallel to other requests.
3664          */
3665         virtual Model::ListVPCAssociationAuthorizationsOutcomeCallable ListVPCAssociationAuthorizationsCallable(const Model::ListVPCAssociationAuthorizationsRequest& request) const;
3666 
3667         /**
3668          * <p>Gets a list of the VPCs that were created by other accounts and that can be
3669          * associated with a specified hosted zone because you've submitted one or more
3670          * <code>CreateVPCAssociationAuthorization</code> requests. </p> <p>The response
3671          * includes a <code>VPCs</code> element with a <code>VPC</code> child element for
3672          * each VPC that can be associated with the hosted zone.</p><p><h3>See Also:</h3>
3673          * <a
3674          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListVPCAssociationAuthorizations">AWS
3675          * API Reference</a></p>
3676          *
3677          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3678          */
3679         virtual void ListVPCAssociationAuthorizationsAsync(const Model::ListVPCAssociationAuthorizationsRequest& request, const ListVPCAssociationAuthorizationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3680 
3681         /**
3682          * <p>Gets the value that Amazon Route 53 returns in response to a DNS request for
3683          * a specified record name and type. You can optionally specify the IP address of a
3684          * DNS resolver, an EDNS0 client subnet IP address, and a subnet mask. </p> <p>This
3685          * call only supports querying public hosted zones.</p><p><h3>See Also:</h3>   <a
3686          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TestDNSAnswer">AWS
3687          * API Reference</a></p>
3688          */
3689         virtual Model::TestDNSAnswerOutcome TestDNSAnswer(const Model::TestDNSAnswerRequest& request) const;
3690 
3691         /**
3692          * <p>Gets the value that Amazon Route 53 returns in response to a DNS request for
3693          * a specified record name and type. You can optionally specify the IP address of a
3694          * DNS resolver, an EDNS0 client subnet IP address, and a subnet mask. </p> <p>This
3695          * call only supports querying public hosted zones.</p><p><h3>See Also:</h3>   <a
3696          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TestDNSAnswer">AWS
3697          * API Reference</a></p>
3698          *
3699          * returns a future to the operation so that it can be executed in parallel to other requests.
3700          */
3701         virtual Model::TestDNSAnswerOutcomeCallable TestDNSAnswerCallable(const Model::TestDNSAnswerRequest& request) const;
3702 
3703         /**
3704          * <p>Gets the value that Amazon Route 53 returns in response to a DNS request for
3705          * a specified record name and type. You can optionally specify the IP address of a
3706          * DNS resolver, an EDNS0 client subnet IP address, and a subnet mask. </p> <p>This
3707          * call only supports querying public hosted zones.</p><p><h3>See Also:</h3>   <a
3708          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TestDNSAnswer">AWS
3709          * API Reference</a></p>
3710          *
3711          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3712          */
3713         virtual void TestDNSAnswerAsync(const Model::TestDNSAnswerRequest& request, const TestDNSAnswerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3714 
3715         /**
3716          * <p>Updates an existing health check. Note that some values can't be updated.
3717          * </p> <p>For more information about updating health checks, see <a
3718          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html">Creating,
3719          * Updating, and Deleting Health Checks</a> in the <i>Amazon Route 53 Developer
3720          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3721          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHealthCheck">AWS
3722          * API Reference</a></p>
3723          */
3724         virtual Model::UpdateHealthCheckOutcome UpdateHealthCheck(const Model::UpdateHealthCheckRequest& request) const;
3725 
3726         /**
3727          * <p>Updates an existing health check. Note that some values can't be updated.
3728          * </p> <p>For more information about updating health checks, see <a
3729          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html">Creating,
3730          * Updating, and Deleting Health Checks</a> in the <i>Amazon Route 53 Developer
3731          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3732          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHealthCheck">AWS
3733          * API Reference</a></p>
3734          *
3735          * returns a future to the operation so that it can be executed in parallel to other requests.
3736          */
3737         virtual Model::UpdateHealthCheckOutcomeCallable UpdateHealthCheckCallable(const Model::UpdateHealthCheckRequest& request) const;
3738 
3739         /**
3740          * <p>Updates an existing health check. Note that some values can't be updated.
3741          * </p> <p>For more information about updating health checks, see <a
3742          * href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html">Creating,
3743          * Updating, and Deleting Health Checks</a> in the <i>Amazon Route 53 Developer
3744          * Guide</i>.</p><p><h3>See Also:</h3>   <a
3745          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHealthCheck">AWS
3746          * API Reference</a></p>
3747          *
3748          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3749          */
3750         virtual void UpdateHealthCheckAsync(const Model::UpdateHealthCheckRequest& request, const UpdateHealthCheckResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3751 
3752         /**
3753          * <p>Updates the comment for a specified hosted zone.</p><p><h3>See Also:</h3>
3754          * <a
3755          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHostedZoneComment">AWS
3756          * API Reference</a></p>
3757          */
3758         virtual Model::UpdateHostedZoneCommentOutcome UpdateHostedZoneComment(const Model::UpdateHostedZoneCommentRequest& request) const;
3759 
3760         /**
3761          * <p>Updates the comment for a specified hosted zone.</p><p><h3>See Also:</h3>
3762          * <a
3763          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHostedZoneComment">AWS
3764          * API Reference</a></p>
3765          *
3766          * returns a future to the operation so that it can be executed in parallel to other requests.
3767          */
3768         virtual Model::UpdateHostedZoneCommentOutcomeCallable UpdateHostedZoneCommentCallable(const Model::UpdateHostedZoneCommentRequest& request) const;
3769 
3770         /**
3771          * <p>Updates the comment for a specified hosted zone.</p><p><h3>See Also:</h3>
3772          * <a
3773          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHostedZoneComment">AWS
3774          * API Reference</a></p>
3775          *
3776          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3777          */
3778         virtual void UpdateHostedZoneCommentAsync(const Model::UpdateHostedZoneCommentRequest& request, const UpdateHostedZoneCommentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3779 
3780         /**
3781          * <p>Updates the comment for a specified traffic policy version.</p><p><h3>See
3782          * Also:</h3>   <a
3783          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyComment">AWS
3784          * API Reference</a></p>
3785          */
3786         virtual Model::UpdateTrafficPolicyCommentOutcome UpdateTrafficPolicyComment(const Model::UpdateTrafficPolicyCommentRequest& request) const;
3787 
3788         /**
3789          * <p>Updates the comment for a specified traffic policy version.</p><p><h3>See
3790          * Also:</h3>   <a
3791          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyComment">AWS
3792          * API Reference</a></p>
3793          *
3794          * returns a future to the operation so that it can be executed in parallel to other requests.
3795          */
3796         virtual Model::UpdateTrafficPolicyCommentOutcomeCallable UpdateTrafficPolicyCommentCallable(const Model::UpdateTrafficPolicyCommentRequest& request) const;
3797 
3798         /**
3799          * <p>Updates the comment for a specified traffic policy version.</p><p><h3>See
3800          * Also:</h3>   <a
3801          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyComment">AWS
3802          * API Reference</a></p>
3803          *
3804          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3805          */
3806         virtual void UpdateTrafficPolicyCommentAsync(const Model::UpdateTrafficPolicyCommentRequest& request, const UpdateTrafficPolicyCommentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3807 
3808         /**
3809          * <p>Updates the resource record sets in a specified hosted zone that were created
3810          * based on the settings in a specified traffic policy version.</p> <p>When you
3811          * update a traffic policy instance, Amazon Route 53 continues to respond to DNS
3812          * queries for the root resource record set name (such as example.com) while it
3813          * replaces one group of resource record sets with another. Route 53 performs the
3814          * following operations:</p> <ol> <li> <p>Route 53 creates a new group of resource
3815          * record sets based on the specified traffic policy. This is true regardless of
3816          * how significant the differences are between the existing resource record sets
3817          * and the new resource record sets. </p> </li> <li> <p>When all of the new
3818          * resource record sets have been created, Route 53 starts to respond to DNS
3819          * queries for the root resource record set name (such as example.com) by using the
3820          * new resource record sets.</p> </li> <li> <p>Route 53 deletes the old group of
3821          * resource record sets that are associated with the root resource record set
3822          * name.</p> </li> </ol><p><h3>See Also:</h3>   <a
3823          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyInstance">AWS
3824          * API Reference</a></p>
3825          */
3826         virtual Model::UpdateTrafficPolicyInstanceOutcome UpdateTrafficPolicyInstance(const Model::UpdateTrafficPolicyInstanceRequest& request) const;
3827 
3828         /**
3829          * <p>Updates the resource record sets in a specified hosted zone that were created
3830          * based on the settings in a specified traffic policy version.</p> <p>When you
3831          * update a traffic policy instance, Amazon Route 53 continues to respond to DNS
3832          * queries for the root resource record set name (such as example.com) while it
3833          * replaces one group of resource record sets with another. Route 53 performs the
3834          * following operations:</p> <ol> <li> <p>Route 53 creates a new group of resource
3835          * record sets based on the specified traffic policy. This is true regardless of
3836          * how significant the differences are between the existing resource record sets
3837          * and the new resource record sets. </p> </li> <li> <p>When all of the new
3838          * resource record sets have been created, Route 53 starts to respond to DNS
3839          * queries for the root resource record set name (such as example.com) by using the
3840          * new resource record sets.</p> </li> <li> <p>Route 53 deletes the old group of
3841          * resource record sets that are associated with the root resource record set
3842          * name.</p> </li> </ol><p><h3>See Also:</h3>   <a
3843          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyInstance">AWS
3844          * API Reference</a></p>
3845          *
3846          * returns a future to the operation so that it can be executed in parallel to other requests.
3847          */
3848         virtual Model::UpdateTrafficPolicyInstanceOutcomeCallable UpdateTrafficPolicyInstanceCallable(const Model::UpdateTrafficPolicyInstanceRequest& request) const;
3849 
3850         /**
3851          * <p>Updates the resource record sets in a specified hosted zone that were created
3852          * based on the settings in a specified traffic policy version.</p> <p>When you
3853          * update a traffic policy instance, Amazon Route 53 continues to respond to DNS
3854          * queries for the root resource record set name (such as example.com) while it
3855          * replaces one group of resource record sets with another. Route 53 performs the
3856          * following operations:</p> <ol> <li> <p>Route 53 creates a new group of resource
3857          * record sets based on the specified traffic policy. This is true regardless of
3858          * how significant the differences are between the existing resource record sets
3859          * and the new resource record sets. </p> </li> <li> <p>When all of the new
3860          * resource record sets have been created, Route 53 starts to respond to DNS
3861          * queries for the root resource record set name (such as example.com) by using the
3862          * new resource record sets.</p> </li> <li> <p>Route 53 deletes the old group of
3863          * resource record sets that are associated with the root resource record set
3864          * name.</p> </li> </ol><p><h3>See Also:</h3>   <a
3865          * href="http://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyInstance">AWS
3866          * API Reference</a></p>
3867          *
3868          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3869          */
3870         virtual void UpdateTrafficPolicyInstanceAsync(const Model::UpdateTrafficPolicyInstanceRequest& request, const UpdateTrafficPolicyInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3871 
3872 
3873         void OverrideEndpoint(const Aws::String& endpoint);
3874   private:
3875         void init(const Aws::Client::ClientConfiguration& clientConfiguration);
3876         void ActivateKeySigningKeyAsyncHelper(const Model::ActivateKeySigningKeyRequest& request, const ActivateKeySigningKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3877         void AssociateVPCWithHostedZoneAsyncHelper(const Model::AssociateVPCWithHostedZoneRequest& request, const AssociateVPCWithHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3878         void ChangeResourceRecordSetsAsyncHelper(const Model::ChangeResourceRecordSetsRequest& request, const ChangeResourceRecordSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3879         void ChangeTagsForResourceAsyncHelper(const Model::ChangeTagsForResourceRequest& request, const ChangeTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3880         void CreateHealthCheckAsyncHelper(const Model::CreateHealthCheckRequest& request, const CreateHealthCheckResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3881         void CreateHostedZoneAsyncHelper(const Model::CreateHostedZoneRequest& request, const CreateHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3882         void CreateKeySigningKeyAsyncHelper(const Model::CreateKeySigningKeyRequest& request, const CreateKeySigningKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3883         void CreateQueryLoggingConfigAsyncHelper(const Model::CreateQueryLoggingConfigRequest& request, const CreateQueryLoggingConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3884         void CreateReusableDelegationSetAsyncHelper(const Model::CreateReusableDelegationSetRequest& request, const CreateReusableDelegationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3885         void CreateTrafficPolicyAsyncHelper(const Model::CreateTrafficPolicyRequest& request, const CreateTrafficPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3886         void CreateTrafficPolicyInstanceAsyncHelper(const Model::CreateTrafficPolicyInstanceRequest& request, const CreateTrafficPolicyInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3887         void CreateTrafficPolicyVersionAsyncHelper(const Model::CreateTrafficPolicyVersionRequest& request, const CreateTrafficPolicyVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3888         void CreateVPCAssociationAuthorizationAsyncHelper(const Model::CreateVPCAssociationAuthorizationRequest& request, const CreateVPCAssociationAuthorizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3889         void DeactivateKeySigningKeyAsyncHelper(const Model::DeactivateKeySigningKeyRequest& request, const DeactivateKeySigningKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3890         void DeleteHealthCheckAsyncHelper(const Model::DeleteHealthCheckRequest& request, const DeleteHealthCheckResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3891         void DeleteHostedZoneAsyncHelper(const Model::DeleteHostedZoneRequest& request, const DeleteHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3892         void DeleteKeySigningKeyAsyncHelper(const Model::DeleteKeySigningKeyRequest& request, const DeleteKeySigningKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3893         void DeleteQueryLoggingConfigAsyncHelper(const Model::DeleteQueryLoggingConfigRequest& request, const DeleteQueryLoggingConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3894         void DeleteReusableDelegationSetAsyncHelper(const Model::DeleteReusableDelegationSetRequest& request, const DeleteReusableDelegationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3895         void DeleteTrafficPolicyAsyncHelper(const Model::DeleteTrafficPolicyRequest& request, const DeleteTrafficPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3896         void DeleteTrafficPolicyInstanceAsyncHelper(const Model::DeleteTrafficPolicyInstanceRequest& request, const DeleteTrafficPolicyInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3897         void DeleteVPCAssociationAuthorizationAsyncHelper(const Model::DeleteVPCAssociationAuthorizationRequest& request, const DeleteVPCAssociationAuthorizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3898         void DisableHostedZoneDNSSECAsyncHelper(const Model::DisableHostedZoneDNSSECRequest& request, const DisableHostedZoneDNSSECResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3899         void DisassociateVPCFromHostedZoneAsyncHelper(const Model::DisassociateVPCFromHostedZoneRequest& request, const DisassociateVPCFromHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3900         void EnableHostedZoneDNSSECAsyncHelper(const Model::EnableHostedZoneDNSSECRequest& request, const EnableHostedZoneDNSSECResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3901         void GetAccountLimitAsyncHelper(const Model::GetAccountLimitRequest& request, const GetAccountLimitResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3902         void GetChangeAsyncHelper(const Model::GetChangeRequest& request, const GetChangeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3903         void GetCheckerIpRangesAsyncHelper(const Model::GetCheckerIpRangesRequest& request, const GetCheckerIpRangesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3904         void GetDNSSECAsyncHelper(const Model::GetDNSSECRequest& request, const GetDNSSECResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3905         void GetGeoLocationAsyncHelper(const Model::GetGeoLocationRequest& request, const GetGeoLocationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3906         void GetHealthCheckAsyncHelper(const Model::GetHealthCheckRequest& request, const GetHealthCheckResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3907         void GetHealthCheckCountAsyncHelper(const Model::GetHealthCheckCountRequest& request, const GetHealthCheckCountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3908         void GetHealthCheckLastFailureReasonAsyncHelper(const Model::GetHealthCheckLastFailureReasonRequest& request, const GetHealthCheckLastFailureReasonResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3909         void GetHealthCheckStatusAsyncHelper(const Model::GetHealthCheckStatusRequest& request, const GetHealthCheckStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3910         void GetHostedZoneAsyncHelper(const Model::GetHostedZoneRequest& request, const GetHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3911         void GetHostedZoneCountAsyncHelper(const Model::GetHostedZoneCountRequest& request, const GetHostedZoneCountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3912         void GetHostedZoneLimitAsyncHelper(const Model::GetHostedZoneLimitRequest& request, const GetHostedZoneLimitResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3913         void GetQueryLoggingConfigAsyncHelper(const Model::GetQueryLoggingConfigRequest& request, const GetQueryLoggingConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3914         void GetReusableDelegationSetAsyncHelper(const Model::GetReusableDelegationSetRequest& request, const GetReusableDelegationSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3915         void GetReusableDelegationSetLimitAsyncHelper(const Model::GetReusableDelegationSetLimitRequest& request, const GetReusableDelegationSetLimitResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3916         void GetTrafficPolicyAsyncHelper(const Model::GetTrafficPolicyRequest& request, const GetTrafficPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3917         void GetTrafficPolicyInstanceAsyncHelper(const Model::GetTrafficPolicyInstanceRequest& request, const GetTrafficPolicyInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3918         void GetTrafficPolicyInstanceCountAsyncHelper(const Model::GetTrafficPolicyInstanceCountRequest& request, const GetTrafficPolicyInstanceCountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3919         void ListGeoLocationsAsyncHelper(const Model::ListGeoLocationsRequest& request, const ListGeoLocationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3920         void ListHealthChecksAsyncHelper(const Model::ListHealthChecksRequest& request, const ListHealthChecksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3921         void ListHostedZonesAsyncHelper(const Model::ListHostedZonesRequest& request, const ListHostedZonesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3922         void ListHostedZonesByNameAsyncHelper(const Model::ListHostedZonesByNameRequest& request, const ListHostedZonesByNameResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3923         void ListHostedZonesByVPCAsyncHelper(const Model::ListHostedZonesByVPCRequest& request, const ListHostedZonesByVPCResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3924         void ListQueryLoggingConfigsAsyncHelper(const Model::ListQueryLoggingConfigsRequest& request, const ListQueryLoggingConfigsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3925         void ListResourceRecordSetsAsyncHelper(const Model::ListResourceRecordSetsRequest& request, const ListResourceRecordSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3926         void ListReusableDelegationSetsAsyncHelper(const Model::ListReusableDelegationSetsRequest& request, const ListReusableDelegationSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3927         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3928         void ListTagsForResourcesAsyncHelper(const Model::ListTagsForResourcesRequest& request, const ListTagsForResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3929         void ListTrafficPoliciesAsyncHelper(const Model::ListTrafficPoliciesRequest& request, const ListTrafficPoliciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3930         void ListTrafficPolicyInstancesAsyncHelper(const Model::ListTrafficPolicyInstancesRequest& request, const ListTrafficPolicyInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3931         void ListTrafficPolicyInstancesByHostedZoneAsyncHelper(const Model::ListTrafficPolicyInstancesByHostedZoneRequest& request, const ListTrafficPolicyInstancesByHostedZoneResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3932         void ListTrafficPolicyInstancesByPolicyAsyncHelper(const Model::ListTrafficPolicyInstancesByPolicyRequest& request, const ListTrafficPolicyInstancesByPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3933         void ListTrafficPolicyVersionsAsyncHelper(const Model::ListTrafficPolicyVersionsRequest& request, const ListTrafficPolicyVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3934         void ListVPCAssociationAuthorizationsAsyncHelper(const Model::ListVPCAssociationAuthorizationsRequest& request, const ListVPCAssociationAuthorizationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3935         void TestDNSAnswerAsyncHelper(const Model::TestDNSAnswerRequest& request, const TestDNSAnswerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3936         void UpdateHealthCheckAsyncHelper(const Model::UpdateHealthCheckRequest& request, const UpdateHealthCheckResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3937         void UpdateHostedZoneCommentAsyncHelper(const Model::UpdateHostedZoneCommentRequest& request, const UpdateHostedZoneCommentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3938         void UpdateTrafficPolicyCommentAsyncHelper(const Model::UpdateTrafficPolicyCommentRequest& request, const UpdateTrafficPolicyCommentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3939         void UpdateTrafficPolicyInstanceAsyncHelper(const Model::UpdateTrafficPolicyInstanceRequest& request, const UpdateTrafficPolicyInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
3940 
3941         Aws::String m_uri;
3942         Aws::String m_configScheme;
3943         std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
3944   };
3945 
3946 } // namespace Route53
3947 } // namespace Aws
3948