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/location/LocationService_EXPORTS.h>
8 #include <aws/location/LocationServiceErrors.h>
9 #include <aws/core/client/AWSError.h>
10 #include <aws/core/client/ClientConfiguration.h>
11 #include <aws/core/client/AWSClient.h>
12 #include <aws/core/utils/memory/stl/AWSString.h>
13 #include <aws/core/utils/json/JsonSerializer.h>
14 #include <aws/location/model/AssociateTrackerConsumerResult.h>
15 #include <aws/location/model/BatchDeleteDevicePositionHistoryResult.h>
16 #include <aws/location/model/BatchDeleteGeofenceResult.h>
17 #include <aws/location/model/BatchEvaluateGeofencesResult.h>
18 #include <aws/location/model/BatchGetDevicePositionResult.h>
19 #include <aws/location/model/BatchPutGeofenceResult.h>
20 #include <aws/location/model/BatchUpdateDevicePositionResult.h>
21 #include <aws/location/model/CalculateRouteResult.h>
22 #include <aws/location/model/CreateGeofenceCollectionResult.h>
23 #include <aws/location/model/CreateMapResult.h>
24 #include <aws/location/model/CreatePlaceIndexResult.h>
25 #include <aws/location/model/CreateRouteCalculatorResult.h>
26 #include <aws/location/model/CreateTrackerResult.h>
27 #include <aws/location/model/DeleteGeofenceCollectionResult.h>
28 #include <aws/location/model/DeleteMapResult.h>
29 #include <aws/location/model/DeletePlaceIndexResult.h>
30 #include <aws/location/model/DeleteRouteCalculatorResult.h>
31 #include <aws/location/model/DeleteTrackerResult.h>
32 #include <aws/location/model/DescribeGeofenceCollectionResult.h>
33 #include <aws/location/model/DescribeMapResult.h>
34 #include <aws/location/model/DescribePlaceIndexResult.h>
35 #include <aws/location/model/DescribeRouteCalculatorResult.h>
36 #include <aws/location/model/DescribeTrackerResult.h>
37 #include <aws/location/model/DisassociateTrackerConsumerResult.h>
38 #include <aws/location/model/GetDevicePositionResult.h>
39 #include <aws/location/model/GetDevicePositionHistoryResult.h>
40 #include <aws/location/model/GetGeofenceResult.h>
41 #include <aws/location/model/GetMapGlyphsResult.h>
42 #include <aws/location/model/GetMapSpritesResult.h>
43 #include <aws/location/model/GetMapStyleDescriptorResult.h>
44 #include <aws/location/model/GetMapTileResult.h>
45 #include <aws/location/model/ListDevicePositionsResult.h>
46 #include <aws/location/model/ListGeofenceCollectionsResult.h>
47 #include <aws/location/model/ListGeofencesResult.h>
48 #include <aws/location/model/ListMapsResult.h>
49 #include <aws/location/model/ListPlaceIndexesResult.h>
50 #include <aws/location/model/ListRouteCalculatorsResult.h>
51 #include <aws/location/model/ListTagsForResourceResult.h>
52 #include <aws/location/model/ListTrackerConsumersResult.h>
53 #include <aws/location/model/ListTrackersResult.h>
54 #include <aws/location/model/PutGeofenceResult.h>
55 #include <aws/location/model/SearchPlaceIndexForPositionResult.h>
56 #include <aws/location/model/SearchPlaceIndexForTextResult.h>
57 #include <aws/location/model/TagResourceResult.h>
58 #include <aws/location/model/UntagResourceResult.h>
59 #include <aws/location/model/UpdateGeofenceCollectionResult.h>
60 #include <aws/location/model/UpdateMapResult.h>
61 #include <aws/location/model/UpdatePlaceIndexResult.h>
62 #include <aws/location/model/UpdateRouteCalculatorResult.h>
63 #include <aws/location/model/UpdateTrackerResult.h>
64 #include <aws/core/client/AsyncCallerContext.h>
65 #include <aws/core/http/HttpTypes.h>
66 #include <future>
67 #include <functional>
68 
69 namespace Aws
70 {
71 
72 namespace Http
73 {
74   class HttpClient;
75   class HttpClientFactory;
76 } // namespace Http
77 
78 namespace Utils
79 {
80   template< typename R, typename E> class Outcome;
81 namespace Threading
82 {
83   class Executor;
84 } // namespace Threading
85 } // namespace Utils
86 
87 namespace Auth
88 {
89   class AWSCredentials;
90   class AWSCredentialsProvider;
91 } // namespace Auth
92 
93 namespace Client
94 {
95   class RetryStrategy;
96 } // namespace Client
97 
98 namespace LocationService
99 {
100 
101 namespace Model
102 {
103         class AssociateTrackerConsumerRequest;
104         class BatchDeleteDevicePositionHistoryRequest;
105         class BatchDeleteGeofenceRequest;
106         class BatchEvaluateGeofencesRequest;
107         class BatchGetDevicePositionRequest;
108         class BatchPutGeofenceRequest;
109         class BatchUpdateDevicePositionRequest;
110         class CalculateRouteRequest;
111         class CreateGeofenceCollectionRequest;
112         class CreateMapRequest;
113         class CreatePlaceIndexRequest;
114         class CreateRouteCalculatorRequest;
115         class CreateTrackerRequest;
116         class DeleteGeofenceCollectionRequest;
117         class DeleteMapRequest;
118         class DeletePlaceIndexRequest;
119         class DeleteRouteCalculatorRequest;
120         class DeleteTrackerRequest;
121         class DescribeGeofenceCollectionRequest;
122         class DescribeMapRequest;
123         class DescribePlaceIndexRequest;
124         class DescribeRouteCalculatorRequest;
125         class DescribeTrackerRequest;
126         class DisassociateTrackerConsumerRequest;
127         class GetDevicePositionRequest;
128         class GetDevicePositionHistoryRequest;
129         class GetGeofenceRequest;
130         class GetMapGlyphsRequest;
131         class GetMapSpritesRequest;
132         class GetMapStyleDescriptorRequest;
133         class GetMapTileRequest;
134         class ListDevicePositionsRequest;
135         class ListGeofenceCollectionsRequest;
136         class ListGeofencesRequest;
137         class ListMapsRequest;
138         class ListPlaceIndexesRequest;
139         class ListRouteCalculatorsRequest;
140         class ListTagsForResourceRequest;
141         class ListTrackerConsumersRequest;
142         class ListTrackersRequest;
143         class PutGeofenceRequest;
144         class SearchPlaceIndexForPositionRequest;
145         class SearchPlaceIndexForTextRequest;
146         class TagResourceRequest;
147         class UntagResourceRequest;
148         class UpdateGeofenceCollectionRequest;
149         class UpdateMapRequest;
150         class UpdatePlaceIndexRequest;
151         class UpdateRouteCalculatorRequest;
152         class UpdateTrackerRequest;
153 
154         typedef Aws::Utils::Outcome<AssociateTrackerConsumerResult, LocationServiceError> AssociateTrackerConsumerOutcome;
155         typedef Aws::Utils::Outcome<BatchDeleteDevicePositionHistoryResult, LocationServiceError> BatchDeleteDevicePositionHistoryOutcome;
156         typedef Aws::Utils::Outcome<BatchDeleteGeofenceResult, LocationServiceError> BatchDeleteGeofenceOutcome;
157         typedef Aws::Utils::Outcome<BatchEvaluateGeofencesResult, LocationServiceError> BatchEvaluateGeofencesOutcome;
158         typedef Aws::Utils::Outcome<BatchGetDevicePositionResult, LocationServiceError> BatchGetDevicePositionOutcome;
159         typedef Aws::Utils::Outcome<BatchPutGeofenceResult, LocationServiceError> BatchPutGeofenceOutcome;
160         typedef Aws::Utils::Outcome<BatchUpdateDevicePositionResult, LocationServiceError> BatchUpdateDevicePositionOutcome;
161         typedef Aws::Utils::Outcome<CalculateRouteResult, LocationServiceError> CalculateRouteOutcome;
162         typedef Aws::Utils::Outcome<CreateGeofenceCollectionResult, LocationServiceError> CreateGeofenceCollectionOutcome;
163         typedef Aws::Utils::Outcome<CreateMapResult, LocationServiceError> CreateMapOutcome;
164         typedef Aws::Utils::Outcome<CreatePlaceIndexResult, LocationServiceError> CreatePlaceIndexOutcome;
165         typedef Aws::Utils::Outcome<CreateRouteCalculatorResult, LocationServiceError> CreateRouteCalculatorOutcome;
166         typedef Aws::Utils::Outcome<CreateTrackerResult, LocationServiceError> CreateTrackerOutcome;
167         typedef Aws::Utils::Outcome<DeleteGeofenceCollectionResult, LocationServiceError> DeleteGeofenceCollectionOutcome;
168         typedef Aws::Utils::Outcome<DeleteMapResult, LocationServiceError> DeleteMapOutcome;
169         typedef Aws::Utils::Outcome<DeletePlaceIndexResult, LocationServiceError> DeletePlaceIndexOutcome;
170         typedef Aws::Utils::Outcome<DeleteRouteCalculatorResult, LocationServiceError> DeleteRouteCalculatorOutcome;
171         typedef Aws::Utils::Outcome<DeleteTrackerResult, LocationServiceError> DeleteTrackerOutcome;
172         typedef Aws::Utils::Outcome<DescribeGeofenceCollectionResult, LocationServiceError> DescribeGeofenceCollectionOutcome;
173         typedef Aws::Utils::Outcome<DescribeMapResult, LocationServiceError> DescribeMapOutcome;
174         typedef Aws::Utils::Outcome<DescribePlaceIndexResult, LocationServiceError> DescribePlaceIndexOutcome;
175         typedef Aws::Utils::Outcome<DescribeRouteCalculatorResult, LocationServiceError> DescribeRouteCalculatorOutcome;
176         typedef Aws::Utils::Outcome<DescribeTrackerResult, LocationServiceError> DescribeTrackerOutcome;
177         typedef Aws::Utils::Outcome<DisassociateTrackerConsumerResult, LocationServiceError> DisassociateTrackerConsumerOutcome;
178         typedef Aws::Utils::Outcome<GetDevicePositionResult, LocationServiceError> GetDevicePositionOutcome;
179         typedef Aws::Utils::Outcome<GetDevicePositionHistoryResult, LocationServiceError> GetDevicePositionHistoryOutcome;
180         typedef Aws::Utils::Outcome<GetGeofenceResult, LocationServiceError> GetGeofenceOutcome;
181         typedef Aws::Utils::Outcome<GetMapGlyphsResult, LocationServiceError> GetMapGlyphsOutcome;
182         typedef Aws::Utils::Outcome<GetMapSpritesResult, LocationServiceError> GetMapSpritesOutcome;
183         typedef Aws::Utils::Outcome<GetMapStyleDescriptorResult, LocationServiceError> GetMapStyleDescriptorOutcome;
184         typedef Aws::Utils::Outcome<GetMapTileResult, LocationServiceError> GetMapTileOutcome;
185         typedef Aws::Utils::Outcome<ListDevicePositionsResult, LocationServiceError> ListDevicePositionsOutcome;
186         typedef Aws::Utils::Outcome<ListGeofenceCollectionsResult, LocationServiceError> ListGeofenceCollectionsOutcome;
187         typedef Aws::Utils::Outcome<ListGeofencesResult, LocationServiceError> ListGeofencesOutcome;
188         typedef Aws::Utils::Outcome<ListMapsResult, LocationServiceError> ListMapsOutcome;
189         typedef Aws::Utils::Outcome<ListPlaceIndexesResult, LocationServiceError> ListPlaceIndexesOutcome;
190         typedef Aws::Utils::Outcome<ListRouteCalculatorsResult, LocationServiceError> ListRouteCalculatorsOutcome;
191         typedef Aws::Utils::Outcome<ListTagsForResourceResult, LocationServiceError> ListTagsForResourceOutcome;
192         typedef Aws::Utils::Outcome<ListTrackerConsumersResult, LocationServiceError> ListTrackerConsumersOutcome;
193         typedef Aws::Utils::Outcome<ListTrackersResult, LocationServiceError> ListTrackersOutcome;
194         typedef Aws::Utils::Outcome<PutGeofenceResult, LocationServiceError> PutGeofenceOutcome;
195         typedef Aws::Utils::Outcome<SearchPlaceIndexForPositionResult, LocationServiceError> SearchPlaceIndexForPositionOutcome;
196         typedef Aws::Utils::Outcome<SearchPlaceIndexForTextResult, LocationServiceError> SearchPlaceIndexForTextOutcome;
197         typedef Aws::Utils::Outcome<TagResourceResult, LocationServiceError> TagResourceOutcome;
198         typedef Aws::Utils::Outcome<UntagResourceResult, LocationServiceError> UntagResourceOutcome;
199         typedef Aws::Utils::Outcome<UpdateGeofenceCollectionResult, LocationServiceError> UpdateGeofenceCollectionOutcome;
200         typedef Aws::Utils::Outcome<UpdateMapResult, LocationServiceError> UpdateMapOutcome;
201         typedef Aws::Utils::Outcome<UpdatePlaceIndexResult, LocationServiceError> UpdatePlaceIndexOutcome;
202         typedef Aws::Utils::Outcome<UpdateRouteCalculatorResult, LocationServiceError> UpdateRouteCalculatorOutcome;
203         typedef Aws::Utils::Outcome<UpdateTrackerResult, LocationServiceError> UpdateTrackerOutcome;
204 
205         typedef std::future<AssociateTrackerConsumerOutcome> AssociateTrackerConsumerOutcomeCallable;
206         typedef std::future<BatchDeleteDevicePositionHistoryOutcome> BatchDeleteDevicePositionHistoryOutcomeCallable;
207         typedef std::future<BatchDeleteGeofenceOutcome> BatchDeleteGeofenceOutcomeCallable;
208         typedef std::future<BatchEvaluateGeofencesOutcome> BatchEvaluateGeofencesOutcomeCallable;
209         typedef std::future<BatchGetDevicePositionOutcome> BatchGetDevicePositionOutcomeCallable;
210         typedef std::future<BatchPutGeofenceOutcome> BatchPutGeofenceOutcomeCallable;
211         typedef std::future<BatchUpdateDevicePositionOutcome> BatchUpdateDevicePositionOutcomeCallable;
212         typedef std::future<CalculateRouteOutcome> CalculateRouteOutcomeCallable;
213         typedef std::future<CreateGeofenceCollectionOutcome> CreateGeofenceCollectionOutcomeCallable;
214         typedef std::future<CreateMapOutcome> CreateMapOutcomeCallable;
215         typedef std::future<CreatePlaceIndexOutcome> CreatePlaceIndexOutcomeCallable;
216         typedef std::future<CreateRouteCalculatorOutcome> CreateRouteCalculatorOutcomeCallable;
217         typedef std::future<CreateTrackerOutcome> CreateTrackerOutcomeCallable;
218         typedef std::future<DeleteGeofenceCollectionOutcome> DeleteGeofenceCollectionOutcomeCallable;
219         typedef std::future<DeleteMapOutcome> DeleteMapOutcomeCallable;
220         typedef std::future<DeletePlaceIndexOutcome> DeletePlaceIndexOutcomeCallable;
221         typedef std::future<DeleteRouteCalculatorOutcome> DeleteRouteCalculatorOutcomeCallable;
222         typedef std::future<DeleteTrackerOutcome> DeleteTrackerOutcomeCallable;
223         typedef std::future<DescribeGeofenceCollectionOutcome> DescribeGeofenceCollectionOutcomeCallable;
224         typedef std::future<DescribeMapOutcome> DescribeMapOutcomeCallable;
225         typedef std::future<DescribePlaceIndexOutcome> DescribePlaceIndexOutcomeCallable;
226         typedef std::future<DescribeRouteCalculatorOutcome> DescribeRouteCalculatorOutcomeCallable;
227         typedef std::future<DescribeTrackerOutcome> DescribeTrackerOutcomeCallable;
228         typedef std::future<DisassociateTrackerConsumerOutcome> DisassociateTrackerConsumerOutcomeCallable;
229         typedef std::future<GetDevicePositionOutcome> GetDevicePositionOutcomeCallable;
230         typedef std::future<GetDevicePositionHistoryOutcome> GetDevicePositionHistoryOutcomeCallable;
231         typedef std::future<GetGeofenceOutcome> GetGeofenceOutcomeCallable;
232         typedef std::future<GetMapGlyphsOutcome> GetMapGlyphsOutcomeCallable;
233         typedef std::future<GetMapSpritesOutcome> GetMapSpritesOutcomeCallable;
234         typedef std::future<GetMapStyleDescriptorOutcome> GetMapStyleDescriptorOutcomeCallable;
235         typedef std::future<GetMapTileOutcome> GetMapTileOutcomeCallable;
236         typedef std::future<ListDevicePositionsOutcome> ListDevicePositionsOutcomeCallable;
237         typedef std::future<ListGeofenceCollectionsOutcome> ListGeofenceCollectionsOutcomeCallable;
238         typedef std::future<ListGeofencesOutcome> ListGeofencesOutcomeCallable;
239         typedef std::future<ListMapsOutcome> ListMapsOutcomeCallable;
240         typedef std::future<ListPlaceIndexesOutcome> ListPlaceIndexesOutcomeCallable;
241         typedef std::future<ListRouteCalculatorsOutcome> ListRouteCalculatorsOutcomeCallable;
242         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
243         typedef std::future<ListTrackerConsumersOutcome> ListTrackerConsumersOutcomeCallable;
244         typedef std::future<ListTrackersOutcome> ListTrackersOutcomeCallable;
245         typedef std::future<PutGeofenceOutcome> PutGeofenceOutcomeCallable;
246         typedef std::future<SearchPlaceIndexForPositionOutcome> SearchPlaceIndexForPositionOutcomeCallable;
247         typedef std::future<SearchPlaceIndexForTextOutcome> SearchPlaceIndexForTextOutcomeCallable;
248         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
249         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
250         typedef std::future<UpdateGeofenceCollectionOutcome> UpdateGeofenceCollectionOutcomeCallable;
251         typedef std::future<UpdateMapOutcome> UpdateMapOutcomeCallable;
252         typedef std::future<UpdatePlaceIndexOutcome> UpdatePlaceIndexOutcomeCallable;
253         typedef std::future<UpdateRouteCalculatorOutcome> UpdateRouteCalculatorOutcomeCallable;
254         typedef std::future<UpdateTrackerOutcome> UpdateTrackerOutcomeCallable;
255 } // namespace Model
256 
257   class LocationServiceClient;
258 
259     typedef std::function<void(const LocationServiceClient*, const Model::AssociateTrackerConsumerRequest&, const Model::AssociateTrackerConsumerOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateTrackerConsumerResponseReceivedHandler;
260     typedef std::function<void(const LocationServiceClient*, const Model::BatchDeleteDevicePositionHistoryRequest&, const Model::BatchDeleteDevicePositionHistoryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchDeleteDevicePositionHistoryResponseReceivedHandler;
261     typedef std::function<void(const LocationServiceClient*, const Model::BatchDeleteGeofenceRequest&, const Model::BatchDeleteGeofenceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchDeleteGeofenceResponseReceivedHandler;
262     typedef std::function<void(const LocationServiceClient*, const Model::BatchEvaluateGeofencesRequest&, const Model::BatchEvaluateGeofencesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchEvaluateGeofencesResponseReceivedHandler;
263     typedef std::function<void(const LocationServiceClient*, const Model::BatchGetDevicePositionRequest&, const Model::BatchGetDevicePositionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchGetDevicePositionResponseReceivedHandler;
264     typedef std::function<void(const LocationServiceClient*, const Model::BatchPutGeofenceRequest&, const Model::BatchPutGeofenceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchPutGeofenceResponseReceivedHandler;
265     typedef std::function<void(const LocationServiceClient*, const Model::BatchUpdateDevicePositionRequest&, const Model::BatchUpdateDevicePositionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchUpdateDevicePositionResponseReceivedHandler;
266     typedef std::function<void(const LocationServiceClient*, const Model::CalculateRouteRequest&, const Model::CalculateRouteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CalculateRouteResponseReceivedHandler;
267     typedef std::function<void(const LocationServiceClient*, const Model::CreateGeofenceCollectionRequest&, const Model::CreateGeofenceCollectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateGeofenceCollectionResponseReceivedHandler;
268     typedef std::function<void(const LocationServiceClient*, const Model::CreateMapRequest&, const Model::CreateMapOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateMapResponseReceivedHandler;
269     typedef std::function<void(const LocationServiceClient*, const Model::CreatePlaceIndexRequest&, const Model::CreatePlaceIndexOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreatePlaceIndexResponseReceivedHandler;
270     typedef std::function<void(const LocationServiceClient*, const Model::CreateRouteCalculatorRequest&, const Model::CreateRouteCalculatorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateRouteCalculatorResponseReceivedHandler;
271     typedef std::function<void(const LocationServiceClient*, const Model::CreateTrackerRequest&, const Model::CreateTrackerOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTrackerResponseReceivedHandler;
272     typedef std::function<void(const LocationServiceClient*, const Model::DeleteGeofenceCollectionRequest&, const Model::DeleteGeofenceCollectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteGeofenceCollectionResponseReceivedHandler;
273     typedef std::function<void(const LocationServiceClient*, const Model::DeleteMapRequest&, const Model::DeleteMapOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteMapResponseReceivedHandler;
274     typedef std::function<void(const LocationServiceClient*, const Model::DeletePlaceIndexRequest&, const Model::DeletePlaceIndexOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePlaceIndexResponseReceivedHandler;
275     typedef std::function<void(const LocationServiceClient*, const Model::DeleteRouteCalculatorRequest&, const Model::DeleteRouteCalculatorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRouteCalculatorResponseReceivedHandler;
276     typedef std::function<void(const LocationServiceClient*, const Model::DeleteTrackerRequest&, const Model::DeleteTrackerOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTrackerResponseReceivedHandler;
277     typedef std::function<void(const LocationServiceClient*, const Model::DescribeGeofenceCollectionRequest&, const Model::DescribeGeofenceCollectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeGeofenceCollectionResponseReceivedHandler;
278     typedef std::function<void(const LocationServiceClient*, const Model::DescribeMapRequest&, const Model::DescribeMapOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeMapResponseReceivedHandler;
279     typedef std::function<void(const LocationServiceClient*, const Model::DescribePlaceIndexRequest&, const Model::DescribePlaceIndexOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribePlaceIndexResponseReceivedHandler;
280     typedef std::function<void(const LocationServiceClient*, const Model::DescribeRouteCalculatorRequest&, const Model::DescribeRouteCalculatorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRouteCalculatorResponseReceivedHandler;
281     typedef std::function<void(const LocationServiceClient*, const Model::DescribeTrackerRequest&, const Model::DescribeTrackerOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTrackerResponseReceivedHandler;
282     typedef std::function<void(const LocationServiceClient*, const Model::DisassociateTrackerConsumerRequest&, const Model::DisassociateTrackerConsumerOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateTrackerConsumerResponseReceivedHandler;
283     typedef std::function<void(const LocationServiceClient*, const Model::GetDevicePositionRequest&, const Model::GetDevicePositionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDevicePositionResponseReceivedHandler;
284     typedef std::function<void(const LocationServiceClient*, const Model::GetDevicePositionHistoryRequest&, const Model::GetDevicePositionHistoryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDevicePositionHistoryResponseReceivedHandler;
285     typedef std::function<void(const LocationServiceClient*, const Model::GetGeofenceRequest&, const Model::GetGeofenceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetGeofenceResponseReceivedHandler;
286     typedef std::function<void(const LocationServiceClient*, const Model::GetMapGlyphsRequest&, Model::GetMapGlyphsOutcome, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetMapGlyphsResponseReceivedHandler;
287     typedef std::function<void(const LocationServiceClient*, const Model::GetMapSpritesRequest&, Model::GetMapSpritesOutcome, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetMapSpritesResponseReceivedHandler;
288     typedef std::function<void(const LocationServiceClient*, const Model::GetMapStyleDescriptorRequest&, Model::GetMapStyleDescriptorOutcome, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetMapStyleDescriptorResponseReceivedHandler;
289     typedef std::function<void(const LocationServiceClient*, const Model::GetMapTileRequest&, Model::GetMapTileOutcome, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetMapTileResponseReceivedHandler;
290     typedef std::function<void(const LocationServiceClient*, const Model::ListDevicePositionsRequest&, const Model::ListDevicePositionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDevicePositionsResponseReceivedHandler;
291     typedef std::function<void(const LocationServiceClient*, const Model::ListGeofenceCollectionsRequest&, const Model::ListGeofenceCollectionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListGeofenceCollectionsResponseReceivedHandler;
292     typedef std::function<void(const LocationServiceClient*, const Model::ListGeofencesRequest&, const Model::ListGeofencesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListGeofencesResponseReceivedHandler;
293     typedef std::function<void(const LocationServiceClient*, const Model::ListMapsRequest&, const Model::ListMapsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListMapsResponseReceivedHandler;
294     typedef std::function<void(const LocationServiceClient*, const Model::ListPlaceIndexesRequest&, const Model::ListPlaceIndexesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListPlaceIndexesResponseReceivedHandler;
295     typedef std::function<void(const LocationServiceClient*, const Model::ListRouteCalculatorsRequest&, const Model::ListRouteCalculatorsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListRouteCalculatorsResponseReceivedHandler;
296     typedef std::function<void(const LocationServiceClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
297     typedef std::function<void(const LocationServiceClient*, const Model::ListTrackerConsumersRequest&, const Model::ListTrackerConsumersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTrackerConsumersResponseReceivedHandler;
298     typedef std::function<void(const LocationServiceClient*, const Model::ListTrackersRequest&, const Model::ListTrackersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTrackersResponseReceivedHandler;
299     typedef std::function<void(const LocationServiceClient*, const Model::PutGeofenceRequest&, const Model::PutGeofenceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutGeofenceResponseReceivedHandler;
300     typedef std::function<void(const LocationServiceClient*, const Model::SearchPlaceIndexForPositionRequest&, const Model::SearchPlaceIndexForPositionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SearchPlaceIndexForPositionResponseReceivedHandler;
301     typedef std::function<void(const LocationServiceClient*, const Model::SearchPlaceIndexForTextRequest&, const Model::SearchPlaceIndexForTextOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SearchPlaceIndexForTextResponseReceivedHandler;
302     typedef std::function<void(const LocationServiceClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
303     typedef std::function<void(const LocationServiceClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
304     typedef std::function<void(const LocationServiceClient*, const Model::UpdateGeofenceCollectionRequest&, const Model::UpdateGeofenceCollectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateGeofenceCollectionResponseReceivedHandler;
305     typedef std::function<void(const LocationServiceClient*, const Model::UpdateMapRequest&, const Model::UpdateMapOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateMapResponseReceivedHandler;
306     typedef std::function<void(const LocationServiceClient*, const Model::UpdatePlaceIndexRequest&, const Model::UpdatePlaceIndexOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdatePlaceIndexResponseReceivedHandler;
307     typedef std::function<void(const LocationServiceClient*, const Model::UpdateRouteCalculatorRequest&, const Model::UpdateRouteCalculatorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateRouteCalculatorResponseReceivedHandler;
308     typedef std::function<void(const LocationServiceClient*, const Model::UpdateTrackerRequest&, const Model::UpdateTrackerOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateTrackerResponseReceivedHandler;
309 
310   /**
311    * <p>Suite of geospatial services including Maps, Places, Routes, Tracking, and
312    * Geofencing</p>
313    */
314   class AWS_LOCATIONSERVICE_API LocationServiceClient : public Aws::Client::AWSJsonClient
315   {
316     public:
317       typedef Aws::Client::AWSJsonClient BASECLASS;
318 
319        /**
320         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
321         * is not specified, it will be initialized to default values.
322         */
323         LocationServiceClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
324 
325        /**
326         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
327         * is not specified, it will be initialized to default values.
328         */
329         LocationServiceClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
330 
331        /**
332         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
333         * the default http client factory will be used
334         */
335         LocationServiceClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
336             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
337 
338         virtual ~LocationServiceClient();
339 
340 
341         /**
342          * <p>Creates an association between a geofence collection and a tracker resource.
343          * This allows the tracker resource to communicate location data to the linked
344          * geofence collection. </p> <p>You can associate up to five geofence collections
345          * to each tracker resource.</p>  <p>Currently not supported — Cross-account
346          * configurations, such as creating associations between a tracker resource in one
347          * account and a geofence collection in another account.</p> <p><h3>See
348          * Also:</h3>   <a
349          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/AssociateTrackerConsumer">AWS
350          * API Reference</a></p>
351          */
352         virtual Model::AssociateTrackerConsumerOutcome AssociateTrackerConsumer(const Model::AssociateTrackerConsumerRequest& request) const;
353 
354         /**
355          * <p>Creates an association between a geofence collection and a tracker resource.
356          * This allows the tracker resource to communicate location data to the linked
357          * geofence collection. </p> <p>You can associate up to five geofence collections
358          * to each tracker resource.</p>  <p>Currently not supported — Cross-account
359          * configurations, such as creating associations between a tracker resource in one
360          * account and a geofence collection in another account.</p> <p><h3>See
361          * Also:</h3>   <a
362          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/AssociateTrackerConsumer">AWS
363          * API Reference</a></p>
364          *
365          * returns a future to the operation so that it can be executed in parallel to other requests.
366          */
367         virtual Model::AssociateTrackerConsumerOutcomeCallable AssociateTrackerConsumerCallable(const Model::AssociateTrackerConsumerRequest& request) const;
368 
369         /**
370          * <p>Creates an association between a geofence collection and a tracker resource.
371          * This allows the tracker resource to communicate location data to the linked
372          * geofence collection. </p> <p>You can associate up to five geofence collections
373          * to each tracker resource.</p>  <p>Currently not supported — Cross-account
374          * configurations, such as creating associations between a tracker resource in one
375          * account and a geofence collection in another account.</p> <p><h3>See
376          * Also:</h3>   <a
377          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/AssociateTrackerConsumer">AWS
378          * API Reference</a></p>
379          *
380          * Queues the request into a thread executor and triggers associated callback when operation has finished.
381          */
382         virtual void AssociateTrackerConsumerAsync(const Model::AssociateTrackerConsumerRequest& request, const AssociateTrackerConsumerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
383 
384         /**
385          * <p>Deletes the position history of one or more devices from a tracker
386          * resource.</p><p><h3>See Also:</h3>   <a
387          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchDeleteDevicePositionHistory">AWS
388          * API Reference</a></p>
389          */
390         virtual Model::BatchDeleteDevicePositionHistoryOutcome BatchDeleteDevicePositionHistory(const Model::BatchDeleteDevicePositionHistoryRequest& request) const;
391 
392         /**
393          * <p>Deletes the position history of one or more devices from a tracker
394          * resource.</p><p><h3>See Also:</h3>   <a
395          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchDeleteDevicePositionHistory">AWS
396          * API Reference</a></p>
397          *
398          * returns a future to the operation so that it can be executed in parallel to other requests.
399          */
400         virtual Model::BatchDeleteDevicePositionHistoryOutcomeCallable BatchDeleteDevicePositionHistoryCallable(const Model::BatchDeleteDevicePositionHistoryRequest& request) const;
401 
402         /**
403          * <p>Deletes the position history of one or more devices from a tracker
404          * resource.</p><p><h3>See Also:</h3>   <a
405          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchDeleteDevicePositionHistory">AWS
406          * API Reference</a></p>
407          *
408          * Queues the request into a thread executor and triggers associated callback when operation has finished.
409          */
410         virtual void BatchDeleteDevicePositionHistoryAsync(const Model::BatchDeleteDevicePositionHistoryRequest& request, const BatchDeleteDevicePositionHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
411 
412         /**
413          * <p>Deletes a batch of geofences from a geofence collection.</p>  <p>This
414          * operation deletes the resource permanently.</p> <p><h3>See Also:</h3>
415          * <a
416          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchDeleteGeofence">AWS
417          * API Reference</a></p>
418          */
419         virtual Model::BatchDeleteGeofenceOutcome BatchDeleteGeofence(const Model::BatchDeleteGeofenceRequest& request) const;
420 
421         /**
422          * <p>Deletes a batch of geofences from a geofence collection.</p>  <p>This
423          * operation deletes the resource permanently.</p> <p><h3>See Also:</h3>
424          * <a
425          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchDeleteGeofence">AWS
426          * API Reference</a></p>
427          *
428          * returns a future to the operation so that it can be executed in parallel to other requests.
429          */
430         virtual Model::BatchDeleteGeofenceOutcomeCallable BatchDeleteGeofenceCallable(const Model::BatchDeleteGeofenceRequest& request) const;
431 
432         /**
433          * <p>Deletes a batch of geofences from a geofence collection.</p>  <p>This
434          * operation deletes the resource permanently.</p> <p><h3>See Also:</h3>
435          * <a
436          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchDeleteGeofence">AWS
437          * API Reference</a></p>
438          *
439          * Queues the request into a thread executor and triggers associated callback when operation has finished.
440          */
441         virtual void BatchDeleteGeofenceAsync(const Model::BatchDeleteGeofenceRequest& request, const BatchDeleteGeofenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
442 
443         /**
444          * <p>Evaluates device positions against the geofence geometries from a given
445          * geofence collection.</p> <p>This operation always returns an empty response
446          * because geofences are asynchronously evaluated. The evaluation determines if the
447          * device has entered or exited a geofenced area, and then publishes one of the
448          * following events to Amazon EventBridge:</p> <ul> <li> <p> <code>ENTER</code> if
449          * Amazon Location determines that the tracked device has entered a geofenced
450          * area.</p> </li> <li> <p> <code>EXIT</code> if Amazon Location determines that
451          * the tracked device has exited a geofenced area.</p> </li> </ul>  <p>The
452          * last geofence that a device was observed within is tracked for 30 days after the
453          * most recent device position update.</p> <p><h3>See Also:</h3>   <a
454          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchEvaluateGeofences">AWS
455          * API Reference</a></p>
456          */
457         virtual Model::BatchEvaluateGeofencesOutcome BatchEvaluateGeofences(const Model::BatchEvaluateGeofencesRequest& request) const;
458 
459         /**
460          * <p>Evaluates device positions against the geofence geometries from a given
461          * geofence collection.</p> <p>This operation always returns an empty response
462          * because geofences are asynchronously evaluated. The evaluation determines if the
463          * device has entered or exited a geofenced area, and then publishes one of the
464          * following events to Amazon EventBridge:</p> <ul> <li> <p> <code>ENTER</code> if
465          * Amazon Location determines that the tracked device has entered a geofenced
466          * area.</p> </li> <li> <p> <code>EXIT</code> if Amazon Location determines that
467          * the tracked device has exited a geofenced area.</p> </li> </ul>  <p>The
468          * last geofence that a device was observed within is tracked for 30 days after the
469          * most recent device position update.</p> <p><h3>See Also:</h3>   <a
470          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchEvaluateGeofences">AWS
471          * API Reference</a></p>
472          *
473          * returns a future to the operation so that it can be executed in parallel to other requests.
474          */
475         virtual Model::BatchEvaluateGeofencesOutcomeCallable BatchEvaluateGeofencesCallable(const Model::BatchEvaluateGeofencesRequest& request) const;
476 
477         /**
478          * <p>Evaluates device positions against the geofence geometries from a given
479          * geofence collection.</p> <p>This operation always returns an empty response
480          * because geofences are asynchronously evaluated. The evaluation determines if the
481          * device has entered or exited a geofenced area, and then publishes one of the
482          * following events to Amazon EventBridge:</p> <ul> <li> <p> <code>ENTER</code> if
483          * Amazon Location determines that the tracked device has entered a geofenced
484          * area.</p> </li> <li> <p> <code>EXIT</code> if Amazon Location determines that
485          * the tracked device has exited a geofenced area.</p> </li> </ul>  <p>The
486          * last geofence that a device was observed within is tracked for 30 days after the
487          * most recent device position update.</p> <p><h3>See Also:</h3>   <a
488          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchEvaluateGeofences">AWS
489          * API Reference</a></p>
490          *
491          * Queues the request into a thread executor and triggers associated callback when operation has finished.
492          */
493         virtual void BatchEvaluateGeofencesAsync(const Model::BatchEvaluateGeofencesRequest& request, const BatchEvaluateGeofencesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
494 
495         /**
496          * <p>Lists the latest device positions for requested devices.</p><p><h3>See
497          * Also:</h3>   <a
498          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchGetDevicePosition">AWS
499          * API Reference</a></p>
500          */
501         virtual Model::BatchGetDevicePositionOutcome BatchGetDevicePosition(const Model::BatchGetDevicePositionRequest& request) const;
502 
503         /**
504          * <p>Lists the latest device positions for requested devices.</p><p><h3>See
505          * Also:</h3>   <a
506          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchGetDevicePosition">AWS
507          * API Reference</a></p>
508          *
509          * returns a future to the operation so that it can be executed in parallel to other requests.
510          */
511         virtual Model::BatchGetDevicePositionOutcomeCallable BatchGetDevicePositionCallable(const Model::BatchGetDevicePositionRequest& request) const;
512 
513         /**
514          * <p>Lists the latest device positions for requested devices.</p><p><h3>See
515          * Also:</h3>   <a
516          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchGetDevicePosition">AWS
517          * API Reference</a></p>
518          *
519          * Queues the request into a thread executor and triggers associated callback when operation has finished.
520          */
521         virtual void BatchGetDevicePositionAsync(const Model::BatchGetDevicePositionRequest& request, const BatchGetDevicePositionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
522 
523         /**
524          * <p>A batch request for storing geofence geometries into a given geofence
525          * collection, or updates the geometry of an existing geofence if a geofence ID is
526          * included in the request.</p><p><h3>See Also:</h3>   <a
527          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchPutGeofence">AWS
528          * API Reference</a></p>
529          */
530         virtual Model::BatchPutGeofenceOutcome BatchPutGeofence(const Model::BatchPutGeofenceRequest& request) const;
531 
532         /**
533          * <p>A batch request for storing geofence geometries into a given geofence
534          * collection, or updates the geometry of an existing geofence if a geofence ID is
535          * included in the request.</p><p><h3>See Also:</h3>   <a
536          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchPutGeofence">AWS
537          * API Reference</a></p>
538          *
539          * returns a future to the operation so that it can be executed in parallel to other requests.
540          */
541         virtual Model::BatchPutGeofenceOutcomeCallable BatchPutGeofenceCallable(const Model::BatchPutGeofenceRequest& request) const;
542 
543         /**
544          * <p>A batch request for storing geofence geometries into a given geofence
545          * collection, or updates the geometry of an existing geofence if a geofence ID is
546          * included in the request.</p><p><h3>See Also:</h3>   <a
547          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchPutGeofence">AWS
548          * API Reference</a></p>
549          *
550          * Queues the request into a thread executor and triggers associated callback when operation has finished.
551          */
552         virtual void BatchPutGeofenceAsync(const Model::BatchPutGeofenceRequest& request, const BatchPutGeofenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
553 
554         /**
555          * <p>Uploads position update data for one or more devices to a tracker resource.
556          * Amazon Location uses the data when it reports the last known device position and
557          * position history. Amazon Location retains location data for 30 days.</p>
558          * <p>Position updates are handled based on the <code>PositionFiltering</code>
559          * property of the tracker. When <code>PositionFiltering</code> is set to
560          * <code>TimeBased</code>, updates are evaluated against linked geofence
561          * collections, and location data is stored at a maximum of one position per 30
562          * second interval. If your update frequency is more often than every 30 seconds,
563          * only one update per 30 seconds is stored for each unique device ID. When
564          * <code>PositionFiltering</code> is set to <code>DistanceBased</code> filtering,
565          * location data is stored and evaluated against linked geofence collections only
566          * if the device has moved more than 30 m (98.4 ft).</p> <p><h3>See
567          * Also:</h3>   <a
568          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchUpdateDevicePosition">AWS
569          * API Reference</a></p>
570          */
571         virtual Model::BatchUpdateDevicePositionOutcome BatchUpdateDevicePosition(const Model::BatchUpdateDevicePositionRequest& request) const;
572 
573         /**
574          * <p>Uploads position update data for one or more devices to a tracker resource.
575          * Amazon Location uses the data when it reports the last known device position and
576          * position history. Amazon Location retains location data for 30 days.</p>
577          * <p>Position updates are handled based on the <code>PositionFiltering</code>
578          * property of the tracker. When <code>PositionFiltering</code> is set to
579          * <code>TimeBased</code>, updates are evaluated against linked geofence
580          * collections, and location data is stored at a maximum of one position per 30
581          * second interval. If your update frequency is more often than every 30 seconds,
582          * only one update per 30 seconds is stored for each unique device ID. When
583          * <code>PositionFiltering</code> is set to <code>DistanceBased</code> filtering,
584          * location data is stored and evaluated against linked geofence collections only
585          * if the device has moved more than 30 m (98.4 ft).</p> <p><h3>See
586          * Also:</h3>   <a
587          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchUpdateDevicePosition">AWS
588          * API Reference</a></p>
589          *
590          * returns a future to the operation so that it can be executed in parallel to other requests.
591          */
592         virtual Model::BatchUpdateDevicePositionOutcomeCallable BatchUpdateDevicePositionCallable(const Model::BatchUpdateDevicePositionRequest& request) const;
593 
594         /**
595          * <p>Uploads position update data for one or more devices to a tracker resource.
596          * Amazon Location uses the data when it reports the last known device position and
597          * position history. Amazon Location retains location data for 30 days.</p>
598          * <p>Position updates are handled based on the <code>PositionFiltering</code>
599          * property of the tracker. When <code>PositionFiltering</code> is set to
600          * <code>TimeBased</code>, updates are evaluated against linked geofence
601          * collections, and location data is stored at a maximum of one position per 30
602          * second interval. If your update frequency is more often than every 30 seconds,
603          * only one update per 30 seconds is stored for each unique device ID. When
604          * <code>PositionFiltering</code> is set to <code>DistanceBased</code> filtering,
605          * location data is stored and evaluated against linked geofence collections only
606          * if the device has moved more than 30 m (98.4 ft).</p> <p><h3>See
607          * Also:</h3>   <a
608          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/BatchUpdateDevicePosition">AWS
609          * API Reference</a></p>
610          *
611          * Queues the request into a thread executor and triggers associated callback when operation has finished.
612          */
613         virtual void BatchUpdateDevicePositionAsync(const Model::BatchUpdateDevicePositionRequest& request, const BatchUpdateDevicePositionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
614 
615         /**
616          * <p> <a
617          * href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html">Calculates
618          * a route</a> given the following required parameters:
619          * <code>DeparturePostiton</code> and <code>DestinationPosition</code>. Requires
620          * that you first <a
621          * href="https://docs.aws.amazon.com/location-routes/latest/APIReference/API_CreateRouteCalculator.html">create
622          * a route calculator resource</a> </p> <p>By default, a request that doesn't
623          * specify a departure time uses the best time of day to travel with the best
624          * traffic conditions when calculating the route.</p> <p>Additional options
625          * include:</p> <ul> <li> <p> <a
626          * href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#departure-time">Specifying
627          * a departure time</a> using either <code>DepartureTime</code> or
628          * <code>DepartureNow</code>. This calculates a route based on predictive traffic
629          * data at the given time. </p>  <p>You can't specify both
630          * <code>DepartureTime</code> and <code>DepartureNow</code> in a single request.
631          * Specifying both parameters returns an error message.</p>  </li> <li> <p>
632          * <a
633          * href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#travel-mode">Specifying
634          * a travel mode</a> using TravelMode. This lets you specify an additional route
635          * preference such as <code>CarModeOptions</code> if traveling by <code>Car</code>,
636          * or <code>TruckModeOptions</code> if traveling by <code>Truck</code>.</p> </li>
637          * </ul> <p> </p><p><h3>See Also:</h3>   <a
638          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CalculateRoute">AWS
639          * API Reference</a></p>
640          */
641         virtual Model::CalculateRouteOutcome CalculateRoute(const Model::CalculateRouteRequest& request) const;
642 
643         /**
644          * <p> <a
645          * href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html">Calculates
646          * a route</a> given the following required parameters:
647          * <code>DeparturePostiton</code> and <code>DestinationPosition</code>. Requires
648          * that you first <a
649          * href="https://docs.aws.amazon.com/location-routes/latest/APIReference/API_CreateRouteCalculator.html">create
650          * a route calculator resource</a> </p> <p>By default, a request that doesn't
651          * specify a departure time uses the best time of day to travel with the best
652          * traffic conditions when calculating the route.</p> <p>Additional options
653          * include:</p> <ul> <li> <p> <a
654          * href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#departure-time">Specifying
655          * a departure time</a> using either <code>DepartureTime</code> or
656          * <code>DepartureNow</code>. This calculates a route based on predictive traffic
657          * data at the given time. </p>  <p>You can't specify both
658          * <code>DepartureTime</code> and <code>DepartureNow</code> in a single request.
659          * Specifying both parameters returns an error message.</p>  </li> <li> <p>
660          * <a
661          * href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#travel-mode">Specifying
662          * a travel mode</a> using TravelMode. This lets you specify an additional route
663          * preference such as <code>CarModeOptions</code> if traveling by <code>Car</code>,
664          * or <code>TruckModeOptions</code> if traveling by <code>Truck</code>.</p> </li>
665          * </ul> <p> </p><p><h3>See Also:</h3>   <a
666          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CalculateRoute">AWS
667          * API Reference</a></p>
668          *
669          * returns a future to the operation so that it can be executed in parallel to other requests.
670          */
671         virtual Model::CalculateRouteOutcomeCallable CalculateRouteCallable(const Model::CalculateRouteRequest& request) const;
672 
673         /**
674          * <p> <a
675          * href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html">Calculates
676          * a route</a> given the following required parameters:
677          * <code>DeparturePostiton</code> and <code>DestinationPosition</code>. Requires
678          * that you first <a
679          * href="https://docs.aws.amazon.com/location-routes/latest/APIReference/API_CreateRouteCalculator.html">create
680          * a route calculator resource</a> </p> <p>By default, a request that doesn't
681          * specify a departure time uses the best time of day to travel with the best
682          * traffic conditions when calculating the route.</p> <p>Additional options
683          * include:</p> <ul> <li> <p> <a
684          * href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#departure-time">Specifying
685          * a departure time</a> using either <code>DepartureTime</code> or
686          * <code>DepartureNow</code>. This calculates a route based on predictive traffic
687          * data at the given time. </p>  <p>You can't specify both
688          * <code>DepartureTime</code> and <code>DepartureNow</code> in a single request.
689          * Specifying both parameters returns an error message.</p>  </li> <li> <p>
690          * <a
691          * href="https://docs.aws.amazon.com/location/latest/developerguide/calculate-route.html#travel-mode">Specifying
692          * a travel mode</a> using TravelMode. This lets you specify an additional route
693          * preference such as <code>CarModeOptions</code> if traveling by <code>Car</code>,
694          * or <code>TruckModeOptions</code> if traveling by <code>Truck</code>.</p> </li>
695          * </ul> <p> </p><p><h3>See Also:</h3>   <a
696          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CalculateRoute">AWS
697          * API Reference</a></p>
698          *
699          * Queues the request into a thread executor and triggers associated callback when operation has finished.
700          */
701         virtual void CalculateRouteAsync(const Model::CalculateRouteRequest& request, const CalculateRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
702 
703         /**
704          * <p>Creates a geofence collection, which manages and stores
705          * geofences.</p><p><h3>See Also:</h3>   <a
706          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateGeofenceCollection">AWS
707          * API Reference</a></p>
708          */
709         virtual Model::CreateGeofenceCollectionOutcome CreateGeofenceCollection(const Model::CreateGeofenceCollectionRequest& request) const;
710 
711         /**
712          * <p>Creates a geofence collection, which manages and stores
713          * geofences.</p><p><h3>See Also:</h3>   <a
714          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateGeofenceCollection">AWS
715          * API Reference</a></p>
716          *
717          * returns a future to the operation so that it can be executed in parallel to other requests.
718          */
719         virtual Model::CreateGeofenceCollectionOutcomeCallable CreateGeofenceCollectionCallable(const Model::CreateGeofenceCollectionRequest& request) const;
720 
721         /**
722          * <p>Creates a geofence collection, which manages and stores
723          * geofences.</p><p><h3>See Also:</h3>   <a
724          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateGeofenceCollection">AWS
725          * API Reference</a></p>
726          *
727          * Queues the request into a thread executor and triggers associated callback when operation has finished.
728          */
729         virtual void CreateGeofenceCollectionAsync(const Model::CreateGeofenceCollectionRequest& request, const CreateGeofenceCollectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
730 
731         /**
732          * <p>Creates a map resource in your AWS account, which provides map tiles of
733          * different styles sourced from global location data providers.</p><p><h3>See
734          * Also:</h3>   <a
735          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateMap">AWS
736          * API Reference</a></p>
737          */
738         virtual Model::CreateMapOutcome CreateMap(const Model::CreateMapRequest& request) const;
739 
740         /**
741          * <p>Creates a map resource in your AWS account, which provides map tiles of
742          * different styles sourced from global location data providers.</p><p><h3>See
743          * Also:</h3>   <a
744          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateMap">AWS
745          * API Reference</a></p>
746          *
747          * returns a future to the operation so that it can be executed in parallel to other requests.
748          */
749         virtual Model::CreateMapOutcomeCallable CreateMapCallable(const Model::CreateMapRequest& request) const;
750 
751         /**
752          * <p>Creates a map resource in your AWS account, which provides map tiles of
753          * different styles sourced from global location data providers.</p><p><h3>See
754          * Also:</h3>   <a
755          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateMap">AWS
756          * API Reference</a></p>
757          *
758          * Queues the request into a thread executor and triggers associated callback when operation has finished.
759          */
760         virtual void CreateMapAsync(const Model::CreateMapRequest& request, const CreateMapResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
761 
762         /**
763          * <p>Creates a place index resource in your AWS account, which supports functions
764          * with geospatial data sourced from your chosen data provider.</p><p><h3>See
765          * Also:</h3>   <a
766          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreatePlaceIndex">AWS
767          * API Reference</a></p>
768          */
769         virtual Model::CreatePlaceIndexOutcome CreatePlaceIndex(const Model::CreatePlaceIndexRequest& request) const;
770 
771         /**
772          * <p>Creates a place index resource in your AWS account, which supports functions
773          * with geospatial data sourced from your chosen data provider.</p><p><h3>See
774          * Also:</h3>   <a
775          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreatePlaceIndex">AWS
776          * API Reference</a></p>
777          *
778          * returns a future to the operation so that it can be executed in parallel to other requests.
779          */
780         virtual Model::CreatePlaceIndexOutcomeCallable CreatePlaceIndexCallable(const Model::CreatePlaceIndexRequest& request) const;
781 
782         /**
783          * <p>Creates a place index resource in your AWS account, which supports functions
784          * with geospatial data sourced from your chosen data provider.</p><p><h3>See
785          * Also:</h3>   <a
786          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreatePlaceIndex">AWS
787          * API Reference</a></p>
788          *
789          * Queues the request into a thread executor and triggers associated callback when operation has finished.
790          */
791         virtual void CreatePlaceIndexAsync(const Model::CreatePlaceIndexRequest& request, const CreatePlaceIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
792 
793         /**
794          * <p>Creates a route calculator resource in your AWS account.</p> <p>You can send
795          * requests to a route calculator resource to estimate travel time, distance, and
796          * get directions. A route calculator sources traffic and road network data from
797          * your chosen data provider.</p><p><h3>See Also:</h3>   <a
798          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateRouteCalculator">AWS
799          * API Reference</a></p>
800          */
801         virtual Model::CreateRouteCalculatorOutcome CreateRouteCalculator(const Model::CreateRouteCalculatorRequest& request) const;
802 
803         /**
804          * <p>Creates a route calculator resource in your AWS account.</p> <p>You can send
805          * requests to a route calculator resource to estimate travel time, distance, and
806          * get directions. A route calculator sources traffic and road network data from
807          * your chosen data provider.</p><p><h3>See Also:</h3>   <a
808          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateRouteCalculator">AWS
809          * API Reference</a></p>
810          *
811          * returns a future to the operation so that it can be executed in parallel to other requests.
812          */
813         virtual Model::CreateRouteCalculatorOutcomeCallable CreateRouteCalculatorCallable(const Model::CreateRouteCalculatorRequest& request) const;
814 
815         /**
816          * <p>Creates a route calculator resource in your AWS account.</p> <p>You can send
817          * requests to a route calculator resource to estimate travel time, distance, and
818          * get directions. A route calculator sources traffic and road network data from
819          * your chosen data provider.</p><p><h3>See Also:</h3>   <a
820          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateRouteCalculator">AWS
821          * API Reference</a></p>
822          *
823          * Queues the request into a thread executor and triggers associated callback when operation has finished.
824          */
825         virtual void CreateRouteCalculatorAsync(const Model::CreateRouteCalculatorRequest& request, const CreateRouteCalculatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
826 
827         /**
828          * <p>Creates a tracker resource in your AWS account, which lets you retrieve
829          * current and historical location of devices.</p><p><h3>See Also:</h3>   <a
830          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateTracker">AWS
831          * API Reference</a></p>
832          */
833         virtual Model::CreateTrackerOutcome CreateTracker(const Model::CreateTrackerRequest& request) const;
834 
835         /**
836          * <p>Creates a tracker resource in your AWS account, which lets you retrieve
837          * current and historical location of devices.</p><p><h3>See Also:</h3>   <a
838          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateTracker">AWS
839          * API Reference</a></p>
840          *
841          * returns a future to the operation so that it can be executed in parallel to other requests.
842          */
843         virtual Model::CreateTrackerOutcomeCallable CreateTrackerCallable(const Model::CreateTrackerRequest& request) const;
844 
845         /**
846          * <p>Creates a tracker resource in your AWS account, which lets you retrieve
847          * current and historical location of devices.</p><p><h3>See Also:</h3>   <a
848          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/CreateTracker">AWS
849          * API Reference</a></p>
850          *
851          * Queues the request into a thread executor and triggers associated callback when operation has finished.
852          */
853         virtual void CreateTrackerAsync(const Model::CreateTrackerRequest& request, const CreateTrackerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
854 
855         /**
856          * <p>Deletes a geofence collection from your AWS account.</p>  <p>This
857          * operation deletes the resource permanently. If the geofence collection is the
858          * target of a tracker resource, the devices will no longer be monitored.</p>
859          * <p><h3>See Also:</h3>   <a
860          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteGeofenceCollection">AWS
861          * API Reference</a></p>
862          */
863         virtual Model::DeleteGeofenceCollectionOutcome DeleteGeofenceCollection(const Model::DeleteGeofenceCollectionRequest& request) const;
864 
865         /**
866          * <p>Deletes a geofence collection from your AWS account.</p>  <p>This
867          * operation deletes the resource permanently. If the geofence collection is the
868          * target of a tracker resource, the devices will no longer be monitored.</p>
869          * <p><h3>See Also:</h3>   <a
870          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteGeofenceCollection">AWS
871          * API Reference</a></p>
872          *
873          * returns a future to the operation so that it can be executed in parallel to other requests.
874          */
875         virtual Model::DeleteGeofenceCollectionOutcomeCallable DeleteGeofenceCollectionCallable(const Model::DeleteGeofenceCollectionRequest& request) const;
876 
877         /**
878          * <p>Deletes a geofence collection from your AWS account.</p>  <p>This
879          * operation deletes the resource permanently. If the geofence collection is the
880          * target of a tracker resource, the devices will no longer be monitored.</p>
881          * <p><h3>See Also:</h3>   <a
882          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteGeofenceCollection">AWS
883          * API Reference</a></p>
884          *
885          * Queues the request into a thread executor and triggers associated callback when operation has finished.
886          */
887         virtual void DeleteGeofenceCollectionAsync(const Model::DeleteGeofenceCollectionRequest& request, const DeleteGeofenceCollectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
888 
889         /**
890          * <p>Deletes a map resource from your AWS account.</p>  <p>This operation
891          * deletes the resource permanently. If the map is being used in an application,
892          * the map may not render.</p> <p><h3>See Also:</h3>   <a
893          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteMap">AWS
894          * API Reference</a></p>
895          */
896         virtual Model::DeleteMapOutcome DeleteMap(const Model::DeleteMapRequest& request) const;
897 
898         /**
899          * <p>Deletes a map resource from your AWS account.</p>  <p>This operation
900          * deletes the resource permanently. If the map is being used in an application,
901          * the map may not render.</p> <p><h3>See Also:</h3>   <a
902          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteMap">AWS
903          * API Reference</a></p>
904          *
905          * returns a future to the operation so that it can be executed in parallel to other requests.
906          */
907         virtual Model::DeleteMapOutcomeCallable DeleteMapCallable(const Model::DeleteMapRequest& request) const;
908 
909         /**
910          * <p>Deletes a map resource from your AWS account.</p>  <p>This operation
911          * deletes the resource permanently. If the map is being used in an application,
912          * the map may not render.</p> <p><h3>See Also:</h3>   <a
913          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteMap">AWS
914          * API Reference</a></p>
915          *
916          * Queues the request into a thread executor and triggers associated callback when operation has finished.
917          */
918         virtual void DeleteMapAsync(const Model::DeleteMapRequest& request, const DeleteMapResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
919 
920         /**
921          * <p>Deletes a place index resource from your AWS account.</p>  <p>This
922          * operation deletes the resource permanently.</p> <p><h3>See Also:</h3>
923          * <a
924          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeletePlaceIndex">AWS
925          * API Reference</a></p>
926          */
927         virtual Model::DeletePlaceIndexOutcome DeletePlaceIndex(const Model::DeletePlaceIndexRequest& request) const;
928 
929         /**
930          * <p>Deletes a place index resource from your AWS account.</p>  <p>This
931          * operation deletes the resource permanently.</p> <p><h3>See Also:</h3>
932          * <a
933          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeletePlaceIndex">AWS
934          * API Reference</a></p>
935          *
936          * returns a future to the operation so that it can be executed in parallel to other requests.
937          */
938         virtual Model::DeletePlaceIndexOutcomeCallable DeletePlaceIndexCallable(const Model::DeletePlaceIndexRequest& request) const;
939 
940         /**
941          * <p>Deletes a place index resource from your AWS account.</p>  <p>This
942          * operation deletes the resource permanently.</p> <p><h3>See Also:</h3>
943          * <a
944          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeletePlaceIndex">AWS
945          * API Reference</a></p>
946          *
947          * Queues the request into a thread executor and triggers associated callback when operation has finished.
948          */
949         virtual void DeletePlaceIndexAsync(const Model::DeletePlaceIndexRequest& request, const DeletePlaceIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
950 
951         /**
952          * <p>Deletes a route calculator resource from your AWS account.</p>  <p>This
953          * operation deletes the resource permanently.</p> <p><h3>See Also:</h3>
954          * <a
955          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteRouteCalculator">AWS
956          * API Reference</a></p>
957          */
958         virtual Model::DeleteRouteCalculatorOutcome DeleteRouteCalculator(const Model::DeleteRouteCalculatorRequest& request) const;
959 
960         /**
961          * <p>Deletes a route calculator resource from your AWS account.</p>  <p>This
962          * operation deletes the resource permanently.</p> <p><h3>See Also:</h3>
963          * <a
964          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteRouteCalculator">AWS
965          * API Reference</a></p>
966          *
967          * returns a future to the operation so that it can be executed in parallel to other requests.
968          */
969         virtual Model::DeleteRouteCalculatorOutcomeCallable DeleteRouteCalculatorCallable(const Model::DeleteRouteCalculatorRequest& request) const;
970 
971         /**
972          * <p>Deletes a route calculator resource from your AWS account.</p>  <p>This
973          * operation deletes the resource permanently.</p> <p><h3>See Also:</h3>
974          * <a
975          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteRouteCalculator">AWS
976          * API Reference</a></p>
977          *
978          * Queues the request into a thread executor and triggers associated callback when operation has finished.
979          */
980         virtual void DeleteRouteCalculatorAsync(const Model::DeleteRouteCalculatorRequest& request, const DeleteRouteCalculatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
981 
982         /**
983          * <p>Deletes a tracker resource from your AWS account.</p>  <p>This
984          * operation deletes the resource permanently. If the tracker resource is in use,
985          * you may encounter an error. Make sure that the target resource isn't a
986          * dependency for your applications.</p> <p><h3>See Also:</h3>   <a
987          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteTracker">AWS
988          * API Reference</a></p>
989          */
990         virtual Model::DeleteTrackerOutcome DeleteTracker(const Model::DeleteTrackerRequest& request) const;
991 
992         /**
993          * <p>Deletes a tracker resource from your AWS account.</p>  <p>This
994          * operation deletes the resource permanently. If the tracker resource is in use,
995          * you may encounter an error. Make sure that the target resource isn't a
996          * dependency for your applications.</p> <p><h3>See Also:</h3>   <a
997          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteTracker">AWS
998          * API Reference</a></p>
999          *
1000          * returns a future to the operation so that it can be executed in parallel to other requests.
1001          */
1002         virtual Model::DeleteTrackerOutcomeCallable DeleteTrackerCallable(const Model::DeleteTrackerRequest& request) const;
1003 
1004         /**
1005          * <p>Deletes a tracker resource from your AWS account.</p>  <p>This
1006          * operation deletes the resource permanently. If the tracker resource is in use,
1007          * you may encounter an error. Make sure that the target resource isn't a
1008          * dependency for your applications.</p> <p><h3>See Also:</h3>   <a
1009          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DeleteTracker">AWS
1010          * API Reference</a></p>
1011          *
1012          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1013          */
1014         virtual void DeleteTrackerAsync(const Model::DeleteTrackerRequest& request, const DeleteTrackerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1015 
1016         /**
1017          * <p>Retrieves the geofence collection details.</p><p><h3>See Also:</h3>   <a
1018          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeGeofenceCollection">AWS
1019          * API Reference</a></p>
1020          */
1021         virtual Model::DescribeGeofenceCollectionOutcome DescribeGeofenceCollection(const Model::DescribeGeofenceCollectionRequest& request) const;
1022 
1023         /**
1024          * <p>Retrieves the geofence collection details.</p><p><h3>See Also:</h3>   <a
1025          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeGeofenceCollection">AWS
1026          * API Reference</a></p>
1027          *
1028          * returns a future to the operation so that it can be executed in parallel to other requests.
1029          */
1030         virtual Model::DescribeGeofenceCollectionOutcomeCallable DescribeGeofenceCollectionCallable(const Model::DescribeGeofenceCollectionRequest& request) const;
1031 
1032         /**
1033          * <p>Retrieves the geofence collection details.</p><p><h3>See Also:</h3>   <a
1034          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeGeofenceCollection">AWS
1035          * API Reference</a></p>
1036          *
1037          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1038          */
1039         virtual void DescribeGeofenceCollectionAsync(const Model::DescribeGeofenceCollectionRequest& request, const DescribeGeofenceCollectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1040 
1041         /**
1042          * <p>Retrieves the map resource details.</p><p><h3>See Also:</h3>   <a
1043          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeMap">AWS
1044          * API Reference</a></p>
1045          */
1046         virtual Model::DescribeMapOutcome DescribeMap(const Model::DescribeMapRequest& request) const;
1047 
1048         /**
1049          * <p>Retrieves the map resource details.</p><p><h3>See Also:</h3>   <a
1050          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeMap">AWS
1051          * API Reference</a></p>
1052          *
1053          * returns a future to the operation so that it can be executed in parallel to other requests.
1054          */
1055         virtual Model::DescribeMapOutcomeCallable DescribeMapCallable(const Model::DescribeMapRequest& request) const;
1056 
1057         /**
1058          * <p>Retrieves the map resource details.</p><p><h3>See Also:</h3>   <a
1059          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeMap">AWS
1060          * API Reference</a></p>
1061          *
1062          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1063          */
1064         virtual void DescribeMapAsync(const Model::DescribeMapRequest& request, const DescribeMapResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1065 
1066         /**
1067          * <p>Retrieves the place index resource details.</p><p><h3>See Also:</h3>   <a
1068          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribePlaceIndex">AWS
1069          * API Reference</a></p>
1070          */
1071         virtual Model::DescribePlaceIndexOutcome DescribePlaceIndex(const Model::DescribePlaceIndexRequest& request) const;
1072 
1073         /**
1074          * <p>Retrieves the place index resource details.</p><p><h3>See Also:</h3>   <a
1075          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribePlaceIndex">AWS
1076          * API Reference</a></p>
1077          *
1078          * returns a future to the operation so that it can be executed in parallel to other requests.
1079          */
1080         virtual Model::DescribePlaceIndexOutcomeCallable DescribePlaceIndexCallable(const Model::DescribePlaceIndexRequest& request) const;
1081 
1082         /**
1083          * <p>Retrieves the place index resource details.</p><p><h3>See Also:</h3>   <a
1084          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribePlaceIndex">AWS
1085          * API Reference</a></p>
1086          *
1087          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1088          */
1089         virtual void DescribePlaceIndexAsync(const Model::DescribePlaceIndexRequest& request, const DescribePlaceIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1090 
1091         /**
1092          * <p>Retrieves the route calculator resource details.</p><p><h3>See Also:</h3>
1093          * <a
1094          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeRouteCalculator">AWS
1095          * API Reference</a></p>
1096          */
1097         virtual Model::DescribeRouteCalculatorOutcome DescribeRouteCalculator(const Model::DescribeRouteCalculatorRequest& request) const;
1098 
1099         /**
1100          * <p>Retrieves the route calculator resource details.</p><p><h3>See Also:</h3>
1101          * <a
1102          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeRouteCalculator">AWS
1103          * API Reference</a></p>
1104          *
1105          * returns a future to the operation so that it can be executed in parallel to other requests.
1106          */
1107         virtual Model::DescribeRouteCalculatorOutcomeCallable DescribeRouteCalculatorCallable(const Model::DescribeRouteCalculatorRequest& request) const;
1108 
1109         /**
1110          * <p>Retrieves the route calculator resource details.</p><p><h3>See Also:</h3>
1111          * <a
1112          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeRouteCalculator">AWS
1113          * API Reference</a></p>
1114          *
1115          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1116          */
1117         virtual void DescribeRouteCalculatorAsync(const Model::DescribeRouteCalculatorRequest& request, const DescribeRouteCalculatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1118 
1119         /**
1120          * <p>Retrieves the tracker resource details.</p><p><h3>See Also:</h3>   <a
1121          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeTracker">AWS
1122          * API Reference</a></p>
1123          */
1124         virtual Model::DescribeTrackerOutcome DescribeTracker(const Model::DescribeTrackerRequest& request) const;
1125 
1126         /**
1127          * <p>Retrieves the tracker resource details.</p><p><h3>See Also:</h3>   <a
1128          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeTracker">AWS
1129          * API Reference</a></p>
1130          *
1131          * returns a future to the operation so that it can be executed in parallel to other requests.
1132          */
1133         virtual Model::DescribeTrackerOutcomeCallable DescribeTrackerCallable(const Model::DescribeTrackerRequest& request) const;
1134 
1135         /**
1136          * <p>Retrieves the tracker resource details.</p><p><h3>See Also:</h3>   <a
1137          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DescribeTracker">AWS
1138          * API Reference</a></p>
1139          *
1140          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1141          */
1142         virtual void DescribeTrackerAsync(const Model::DescribeTrackerRequest& request, const DescribeTrackerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1143 
1144         /**
1145          * <p>Removes the association between a tracker resource and a geofence
1146          * collection.</p>  <p>Once you unlink a tracker resource from a geofence
1147          * collection, the tracker positions will no longer be automatically evaluated
1148          * against geofences.</p> <p><h3>See Also:</h3>   <a
1149          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DisassociateTrackerConsumer">AWS
1150          * API Reference</a></p>
1151          */
1152         virtual Model::DisassociateTrackerConsumerOutcome DisassociateTrackerConsumer(const Model::DisassociateTrackerConsumerRequest& request) const;
1153 
1154         /**
1155          * <p>Removes the association between a tracker resource and a geofence
1156          * collection.</p>  <p>Once you unlink a tracker resource from a geofence
1157          * collection, the tracker positions will no longer be automatically evaluated
1158          * against geofences.</p> <p><h3>See Also:</h3>   <a
1159          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DisassociateTrackerConsumer">AWS
1160          * API Reference</a></p>
1161          *
1162          * returns a future to the operation so that it can be executed in parallel to other requests.
1163          */
1164         virtual Model::DisassociateTrackerConsumerOutcomeCallable DisassociateTrackerConsumerCallable(const Model::DisassociateTrackerConsumerRequest& request) const;
1165 
1166         /**
1167          * <p>Removes the association between a tracker resource and a geofence
1168          * collection.</p>  <p>Once you unlink a tracker resource from a geofence
1169          * collection, the tracker positions will no longer be automatically evaluated
1170          * against geofences.</p> <p><h3>See Also:</h3>   <a
1171          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/DisassociateTrackerConsumer">AWS
1172          * API Reference</a></p>
1173          *
1174          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1175          */
1176         virtual void DisassociateTrackerConsumerAsync(const Model::DisassociateTrackerConsumerRequest& request, const DisassociateTrackerConsumerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1177 
1178         /**
1179          * <p>Retrieves a device's most recent position according to its sample time.</p>
1180          *  <p>Device positions are deleted after 30 days.</p> <p><h3>See
1181          * Also:</h3>   <a
1182          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetDevicePosition">AWS
1183          * API Reference</a></p>
1184          */
1185         virtual Model::GetDevicePositionOutcome GetDevicePosition(const Model::GetDevicePositionRequest& request) const;
1186 
1187         /**
1188          * <p>Retrieves a device's most recent position according to its sample time.</p>
1189          *  <p>Device positions are deleted after 30 days.</p> <p><h3>See
1190          * Also:</h3>   <a
1191          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetDevicePosition">AWS
1192          * API Reference</a></p>
1193          *
1194          * returns a future to the operation so that it can be executed in parallel to other requests.
1195          */
1196         virtual Model::GetDevicePositionOutcomeCallable GetDevicePositionCallable(const Model::GetDevicePositionRequest& request) const;
1197 
1198         /**
1199          * <p>Retrieves a device's most recent position according to its sample time.</p>
1200          *  <p>Device positions are deleted after 30 days.</p> <p><h3>See
1201          * Also:</h3>   <a
1202          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetDevicePosition">AWS
1203          * API Reference</a></p>
1204          *
1205          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1206          */
1207         virtual void GetDevicePositionAsync(const Model::GetDevicePositionRequest& request, const GetDevicePositionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1208 
1209         /**
1210          * <p>Retrieves the device position history from a tracker resource within a
1211          * specified range of time.</p>  <p>Device positions are deleted after 30
1212          * days.</p> <p><h3>See Also:</h3>   <a
1213          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetDevicePositionHistory">AWS
1214          * API Reference</a></p>
1215          */
1216         virtual Model::GetDevicePositionHistoryOutcome GetDevicePositionHistory(const Model::GetDevicePositionHistoryRequest& request) const;
1217 
1218         /**
1219          * <p>Retrieves the device position history from a tracker resource within a
1220          * specified range of time.</p>  <p>Device positions are deleted after 30
1221          * days.</p> <p><h3>See Also:</h3>   <a
1222          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetDevicePositionHistory">AWS
1223          * API Reference</a></p>
1224          *
1225          * returns a future to the operation so that it can be executed in parallel to other requests.
1226          */
1227         virtual Model::GetDevicePositionHistoryOutcomeCallable GetDevicePositionHistoryCallable(const Model::GetDevicePositionHistoryRequest& request) const;
1228 
1229         /**
1230          * <p>Retrieves the device position history from a tracker resource within a
1231          * specified range of time.</p>  <p>Device positions are deleted after 30
1232          * days.</p> <p><h3>See Also:</h3>   <a
1233          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetDevicePositionHistory">AWS
1234          * API Reference</a></p>
1235          *
1236          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1237          */
1238         virtual void GetDevicePositionHistoryAsync(const Model::GetDevicePositionHistoryRequest& request, const GetDevicePositionHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1239 
1240         /**
1241          * <p>Retrieves the geofence details from a geofence collection.</p><p><h3>See
1242          * Also:</h3>   <a
1243          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetGeofence">AWS
1244          * API Reference</a></p>
1245          */
1246         virtual Model::GetGeofenceOutcome GetGeofence(const Model::GetGeofenceRequest& request) const;
1247 
1248         /**
1249          * <p>Retrieves the geofence details from a geofence collection.</p><p><h3>See
1250          * Also:</h3>   <a
1251          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetGeofence">AWS
1252          * API Reference</a></p>
1253          *
1254          * returns a future to the operation so that it can be executed in parallel to other requests.
1255          */
1256         virtual Model::GetGeofenceOutcomeCallable GetGeofenceCallable(const Model::GetGeofenceRequest& request) const;
1257 
1258         /**
1259          * <p>Retrieves the geofence details from a geofence collection.</p><p><h3>See
1260          * Also:</h3>   <a
1261          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetGeofence">AWS
1262          * API Reference</a></p>
1263          *
1264          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1265          */
1266         virtual void GetGeofenceAsync(const Model::GetGeofenceRequest& request, const GetGeofenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1267 
1268         /**
1269          * <p>Retrieves glyphs used to display labels on a map.</p><p><h3>See Also:</h3>
1270          * <a
1271          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapGlyphs">AWS
1272          * API Reference</a></p>
1273          */
1274         virtual Model::GetMapGlyphsOutcome GetMapGlyphs(const Model::GetMapGlyphsRequest& request) const;
1275 
1276         /**
1277          * <p>Retrieves glyphs used to display labels on a map.</p><p><h3>See Also:</h3>
1278          * <a
1279          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapGlyphs">AWS
1280          * API Reference</a></p>
1281          *
1282          * returns a future to the operation so that it can be executed in parallel to other requests.
1283          */
1284         virtual Model::GetMapGlyphsOutcomeCallable GetMapGlyphsCallable(const Model::GetMapGlyphsRequest& request) const;
1285 
1286         /**
1287          * <p>Retrieves glyphs used to display labels on a map.</p><p><h3>See Also:</h3>
1288          * <a
1289          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapGlyphs">AWS
1290          * API Reference</a></p>
1291          *
1292          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1293          */
1294         virtual void GetMapGlyphsAsync(const Model::GetMapGlyphsRequest& request, const GetMapGlyphsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1295 
1296         /**
1297          * <p>Retrieves the sprite sheet corresponding to a map resource. The sprite sheet
1298          * is a PNG image paired with a JSON document describing the offsets of individual
1299          * icons that will be displayed on a rendered map.</p><p><h3>See Also:</h3>   <a
1300          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapSprites">AWS
1301          * API Reference</a></p>
1302          */
1303         virtual Model::GetMapSpritesOutcome GetMapSprites(const Model::GetMapSpritesRequest& request) const;
1304 
1305         /**
1306          * <p>Retrieves the sprite sheet corresponding to a map resource. The sprite sheet
1307          * is a PNG image paired with a JSON document describing the offsets of individual
1308          * icons that will be displayed on a rendered map.</p><p><h3>See Also:</h3>   <a
1309          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapSprites">AWS
1310          * API Reference</a></p>
1311          *
1312          * returns a future to the operation so that it can be executed in parallel to other requests.
1313          */
1314         virtual Model::GetMapSpritesOutcomeCallable GetMapSpritesCallable(const Model::GetMapSpritesRequest& request) const;
1315 
1316         /**
1317          * <p>Retrieves the sprite sheet corresponding to a map resource. The sprite sheet
1318          * is a PNG image paired with a JSON document describing the offsets of individual
1319          * icons that will be displayed on a rendered map.</p><p><h3>See Also:</h3>   <a
1320          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapSprites">AWS
1321          * API Reference</a></p>
1322          *
1323          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1324          */
1325         virtual void GetMapSpritesAsync(const Model::GetMapSpritesRequest& request, const GetMapSpritesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1326 
1327         /**
1328          * <p>Retrieves the map style descriptor from a map resource. </p> <p>The style
1329          * descriptor contains specifications on how features render on a map. For example,
1330          * what data to display, what order to display the data in, and the style for the
1331          * data. Style descriptors follow the Mapbox Style Specification.</p><p><h3>See
1332          * Also:</h3>   <a
1333          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapStyleDescriptor">AWS
1334          * API Reference</a></p>
1335          */
1336         virtual Model::GetMapStyleDescriptorOutcome GetMapStyleDescriptor(const Model::GetMapStyleDescriptorRequest& request) const;
1337 
1338         /**
1339          * <p>Retrieves the map style descriptor from a map resource. </p> <p>The style
1340          * descriptor contains specifications on how features render on a map. For example,
1341          * what data to display, what order to display the data in, and the style for the
1342          * data. Style descriptors follow the Mapbox Style Specification.</p><p><h3>See
1343          * Also:</h3>   <a
1344          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapStyleDescriptor">AWS
1345          * API Reference</a></p>
1346          *
1347          * returns a future to the operation so that it can be executed in parallel to other requests.
1348          */
1349         virtual Model::GetMapStyleDescriptorOutcomeCallable GetMapStyleDescriptorCallable(const Model::GetMapStyleDescriptorRequest& request) const;
1350 
1351         /**
1352          * <p>Retrieves the map style descriptor from a map resource. </p> <p>The style
1353          * descriptor contains specifications on how features render on a map. For example,
1354          * what data to display, what order to display the data in, and the style for the
1355          * data. Style descriptors follow the Mapbox Style Specification.</p><p><h3>See
1356          * Also:</h3>   <a
1357          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapStyleDescriptor">AWS
1358          * API Reference</a></p>
1359          *
1360          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1361          */
1362         virtual void GetMapStyleDescriptorAsync(const Model::GetMapStyleDescriptorRequest& request, const GetMapStyleDescriptorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1363 
1364         /**
1365          * <p>Retrieves a vector data tile from the map resource. Map tiles are used by
1366          * clients to render a map. they're addressed using a grid arrangement with an X
1367          * coordinate, Y coordinate, and Z (zoom) level. </p> <p>The origin (0, 0) is the
1368          * top left of the map. Increasing the zoom level by 1 doubles both the X and Y
1369          * dimensions, so a tile containing data for the entire world at (0/0/0) will be
1370          * split into 4 tiles at zoom 1 (1/0/0, 1/0/1, 1/1/0, 1/1/1).</p><p><h3>See
1371          * Also:</h3>   <a
1372          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapTile">AWS
1373          * API Reference</a></p>
1374          */
1375         virtual Model::GetMapTileOutcome GetMapTile(const Model::GetMapTileRequest& request) const;
1376 
1377         /**
1378          * <p>Retrieves a vector data tile from the map resource. Map tiles are used by
1379          * clients to render a map. they're addressed using a grid arrangement with an X
1380          * coordinate, Y coordinate, and Z (zoom) level. </p> <p>The origin (0, 0) is the
1381          * top left of the map. Increasing the zoom level by 1 doubles both the X and Y
1382          * dimensions, so a tile containing data for the entire world at (0/0/0) will be
1383          * split into 4 tiles at zoom 1 (1/0/0, 1/0/1, 1/1/0, 1/1/1).</p><p><h3>See
1384          * Also:</h3>   <a
1385          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapTile">AWS
1386          * API Reference</a></p>
1387          *
1388          * returns a future to the operation so that it can be executed in parallel to other requests.
1389          */
1390         virtual Model::GetMapTileOutcomeCallable GetMapTileCallable(const Model::GetMapTileRequest& request) const;
1391 
1392         /**
1393          * <p>Retrieves a vector data tile from the map resource. Map tiles are used by
1394          * clients to render a map. they're addressed using a grid arrangement with an X
1395          * coordinate, Y coordinate, and Z (zoom) level. </p> <p>The origin (0, 0) is the
1396          * top left of the map. Increasing the zoom level by 1 doubles both the X and Y
1397          * dimensions, so a tile containing data for the entire world at (0/0/0) will be
1398          * split into 4 tiles at zoom 1 (1/0/0, 1/0/1, 1/1/0, 1/1/1).</p><p><h3>See
1399          * Also:</h3>   <a
1400          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/GetMapTile">AWS
1401          * API Reference</a></p>
1402          *
1403          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1404          */
1405         virtual void GetMapTileAsync(const Model::GetMapTileRequest& request, const GetMapTileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1406 
1407         /**
1408          * <p>A batch request to retrieve all device positions.</p><p><h3>See Also:</h3>
1409          * <a
1410          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListDevicePositions">AWS
1411          * API Reference</a></p>
1412          */
1413         virtual Model::ListDevicePositionsOutcome ListDevicePositions(const Model::ListDevicePositionsRequest& request) const;
1414 
1415         /**
1416          * <p>A batch request to retrieve all device positions.</p><p><h3>See Also:</h3>
1417          * <a
1418          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListDevicePositions">AWS
1419          * API Reference</a></p>
1420          *
1421          * returns a future to the operation so that it can be executed in parallel to other requests.
1422          */
1423         virtual Model::ListDevicePositionsOutcomeCallable ListDevicePositionsCallable(const Model::ListDevicePositionsRequest& request) const;
1424 
1425         /**
1426          * <p>A batch request to retrieve all device positions.</p><p><h3>See Also:</h3>
1427          * <a
1428          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListDevicePositions">AWS
1429          * API Reference</a></p>
1430          *
1431          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1432          */
1433         virtual void ListDevicePositionsAsync(const Model::ListDevicePositionsRequest& request, const ListDevicePositionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1434 
1435         /**
1436          * <p>Lists geofence collections in your AWS account.</p><p><h3>See Also:</h3>   <a
1437          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListGeofenceCollections">AWS
1438          * API Reference</a></p>
1439          */
1440         virtual Model::ListGeofenceCollectionsOutcome ListGeofenceCollections(const Model::ListGeofenceCollectionsRequest& request) const;
1441 
1442         /**
1443          * <p>Lists geofence collections in your AWS account.</p><p><h3>See Also:</h3>   <a
1444          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListGeofenceCollections">AWS
1445          * API Reference</a></p>
1446          *
1447          * returns a future to the operation so that it can be executed in parallel to other requests.
1448          */
1449         virtual Model::ListGeofenceCollectionsOutcomeCallable ListGeofenceCollectionsCallable(const Model::ListGeofenceCollectionsRequest& request) const;
1450 
1451         /**
1452          * <p>Lists geofence collections in your AWS account.</p><p><h3>See Also:</h3>   <a
1453          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListGeofenceCollections">AWS
1454          * API Reference</a></p>
1455          *
1456          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1457          */
1458         virtual void ListGeofenceCollectionsAsync(const Model::ListGeofenceCollectionsRequest& request, const ListGeofenceCollectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1459 
1460         /**
1461          * <p>Lists geofences stored in a given geofence collection.</p><p><h3>See
1462          * Also:</h3>   <a
1463          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListGeofences">AWS
1464          * API Reference</a></p>
1465          */
1466         virtual Model::ListGeofencesOutcome ListGeofences(const Model::ListGeofencesRequest& request) const;
1467 
1468         /**
1469          * <p>Lists geofences stored in a given geofence collection.</p><p><h3>See
1470          * Also:</h3>   <a
1471          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListGeofences">AWS
1472          * API Reference</a></p>
1473          *
1474          * returns a future to the operation so that it can be executed in parallel to other requests.
1475          */
1476         virtual Model::ListGeofencesOutcomeCallable ListGeofencesCallable(const Model::ListGeofencesRequest& request) const;
1477 
1478         /**
1479          * <p>Lists geofences stored in a given geofence collection.</p><p><h3>See
1480          * Also:</h3>   <a
1481          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListGeofences">AWS
1482          * API Reference</a></p>
1483          *
1484          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1485          */
1486         virtual void ListGeofencesAsync(const Model::ListGeofencesRequest& request, const ListGeofencesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1487 
1488         /**
1489          * <p>Lists map resources in your AWS account.</p><p><h3>See Also:</h3>   <a
1490          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListMaps">AWS
1491          * API Reference</a></p>
1492          */
1493         virtual Model::ListMapsOutcome ListMaps(const Model::ListMapsRequest& request) const;
1494 
1495         /**
1496          * <p>Lists map resources in your AWS account.</p><p><h3>See Also:</h3>   <a
1497          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListMaps">AWS
1498          * API Reference</a></p>
1499          *
1500          * returns a future to the operation so that it can be executed in parallel to other requests.
1501          */
1502         virtual Model::ListMapsOutcomeCallable ListMapsCallable(const Model::ListMapsRequest& request) const;
1503 
1504         /**
1505          * <p>Lists map resources in your AWS account.</p><p><h3>See Also:</h3>   <a
1506          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListMaps">AWS
1507          * API Reference</a></p>
1508          *
1509          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1510          */
1511         virtual void ListMapsAsync(const Model::ListMapsRequest& request, const ListMapsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1512 
1513         /**
1514          * <p>Lists place index resources in your AWS account.</p><p><h3>See Also:</h3>
1515          * <a
1516          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListPlaceIndexes">AWS
1517          * API Reference</a></p>
1518          */
1519         virtual Model::ListPlaceIndexesOutcome ListPlaceIndexes(const Model::ListPlaceIndexesRequest& request) const;
1520 
1521         /**
1522          * <p>Lists place index resources in your AWS account.</p><p><h3>See Also:</h3>
1523          * <a
1524          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListPlaceIndexes">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::ListPlaceIndexesOutcomeCallable ListPlaceIndexesCallable(const Model::ListPlaceIndexesRequest& request) const;
1530 
1531         /**
1532          * <p>Lists place index resources in your AWS account.</p><p><h3>See Also:</h3>
1533          * <a
1534          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListPlaceIndexes">AWS
1535          * API Reference</a></p>
1536          *
1537          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1538          */
1539         virtual void ListPlaceIndexesAsync(const Model::ListPlaceIndexesRequest& request, const ListPlaceIndexesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1540 
1541         /**
1542          * <p>Lists route calculator resources in your AWS account.</p><p><h3>See
1543          * Also:</h3>   <a
1544          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListRouteCalculators">AWS
1545          * API Reference</a></p>
1546          */
1547         virtual Model::ListRouteCalculatorsOutcome ListRouteCalculators(const Model::ListRouteCalculatorsRequest& request) const;
1548 
1549         /**
1550          * <p>Lists route calculator resources in your AWS account.</p><p><h3>See
1551          * Also:</h3>   <a
1552          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListRouteCalculators">AWS
1553          * API Reference</a></p>
1554          *
1555          * returns a future to the operation so that it can be executed in parallel to other requests.
1556          */
1557         virtual Model::ListRouteCalculatorsOutcomeCallable ListRouteCalculatorsCallable(const Model::ListRouteCalculatorsRequest& request) const;
1558 
1559         /**
1560          * <p>Lists route calculator resources in your AWS account.</p><p><h3>See
1561          * Also:</h3>   <a
1562          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListRouteCalculators">AWS
1563          * API Reference</a></p>
1564          *
1565          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1566          */
1567         virtual void ListRouteCalculatorsAsync(const Model::ListRouteCalculatorsRequest& request, const ListRouteCalculatorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1568 
1569         /**
1570          * <p>Returns a list of tags that are applied to the specified Amazon Location
1571          * resource.</p><p><h3>See Also:</h3>   <a
1572          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListTagsForResource">AWS
1573          * API Reference</a></p>
1574          */
1575         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
1576 
1577         /**
1578          * <p>Returns a list of tags that are applied to the specified Amazon Location
1579          * resource.</p><p><h3>See Also:</h3>   <a
1580          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListTagsForResource">AWS
1581          * API Reference</a></p>
1582          *
1583          * returns a future to the operation so that it can be executed in parallel to other requests.
1584          */
1585         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
1586 
1587         /**
1588          * <p>Returns a list of tags that are applied to the specified Amazon Location
1589          * resource.</p><p><h3>See Also:</h3>   <a
1590          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListTagsForResource">AWS
1591          * API Reference</a></p>
1592          *
1593          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1594          */
1595         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1596 
1597         /**
1598          * <p>Lists geofence collections currently associated to the given tracker
1599          * resource.</p><p><h3>See Also:</h3>   <a
1600          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListTrackerConsumers">AWS
1601          * API Reference</a></p>
1602          */
1603         virtual Model::ListTrackerConsumersOutcome ListTrackerConsumers(const Model::ListTrackerConsumersRequest& request) const;
1604 
1605         /**
1606          * <p>Lists geofence collections currently associated to the given tracker
1607          * resource.</p><p><h3>See Also:</h3>   <a
1608          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListTrackerConsumers">AWS
1609          * API Reference</a></p>
1610          *
1611          * returns a future to the operation so that it can be executed in parallel to other requests.
1612          */
1613         virtual Model::ListTrackerConsumersOutcomeCallable ListTrackerConsumersCallable(const Model::ListTrackerConsumersRequest& request) const;
1614 
1615         /**
1616          * <p>Lists geofence collections currently associated to the given tracker
1617          * resource.</p><p><h3>See Also:</h3>   <a
1618          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListTrackerConsumers">AWS
1619          * API Reference</a></p>
1620          *
1621          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1622          */
1623         virtual void ListTrackerConsumersAsync(const Model::ListTrackerConsumersRequest& request, const ListTrackerConsumersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1624 
1625         /**
1626          * <p>Lists tracker resources in your AWS account.</p><p><h3>See Also:</h3>   <a
1627          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListTrackers">AWS
1628          * API Reference</a></p>
1629          */
1630         virtual Model::ListTrackersOutcome ListTrackers(const Model::ListTrackersRequest& request) const;
1631 
1632         /**
1633          * <p>Lists tracker resources in your AWS account.</p><p><h3>See Also:</h3>   <a
1634          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListTrackers">AWS
1635          * API Reference</a></p>
1636          *
1637          * returns a future to the operation so that it can be executed in parallel to other requests.
1638          */
1639         virtual Model::ListTrackersOutcomeCallable ListTrackersCallable(const Model::ListTrackersRequest& request) const;
1640 
1641         /**
1642          * <p>Lists tracker resources in your AWS account.</p><p><h3>See Also:</h3>   <a
1643          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListTrackers">AWS
1644          * API Reference</a></p>
1645          *
1646          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1647          */
1648         virtual void ListTrackersAsync(const Model::ListTrackersRequest& request, const ListTrackersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1649 
1650         /**
1651          * <p>Stores a geofence geometry in a given geofence collection, or updates the
1652          * geometry of an existing geofence if a geofence ID is included in the request.
1653          * </p><p><h3>See Also:</h3>   <a
1654          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/PutGeofence">AWS
1655          * API Reference</a></p>
1656          */
1657         virtual Model::PutGeofenceOutcome PutGeofence(const Model::PutGeofenceRequest& request) const;
1658 
1659         /**
1660          * <p>Stores a geofence geometry in a given geofence collection, or updates the
1661          * geometry of an existing geofence if a geofence ID is included in the request.
1662          * </p><p><h3>See Also:</h3>   <a
1663          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/PutGeofence">AWS
1664          * API Reference</a></p>
1665          *
1666          * returns a future to the operation so that it can be executed in parallel to other requests.
1667          */
1668         virtual Model::PutGeofenceOutcomeCallable PutGeofenceCallable(const Model::PutGeofenceRequest& request) const;
1669 
1670         /**
1671          * <p>Stores a geofence geometry in a given geofence collection, or updates the
1672          * geometry of an existing geofence if a geofence ID is included in the request.
1673          * </p><p><h3>See Also:</h3>   <a
1674          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/PutGeofence">AWS
1675          * API Reference</a></p>
1676          *
1677          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1678          */
1679         virtual void PutGeofenceAsync(const Model::PutGeofenceRequest& request, const PutGeofenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1680 
1681         /**
1682          * <p>Reverse geocodes a given coordinate and returns a legible address. Allows you
1683          * to search for Places or points of interest near a given position.</p><p><h3>See
1684          * Also:</h3>   <a
1685          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/SearchPlaceIndexForPosition">AWS
1686          * API Reference</a></p>
1687          */
1688         virtual Model::SearchPlaceIndexForPositionOutcome SearchPlaceIndexForPosition(const Model::SearchPlaceIndexForPositionRequest& request) const;
1689 
1690         /**
1691          * <p>Reverse geocodes a given coordinate and returns a legible address. Allows you
1692          * to search for Places or points of interest near a given position.</p><p><h3>See
1693          * Also:</h3>   <a
1694          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/SearchPlaceIndexForPosition">AWS
1695          * API Reference</a></p>
1696          *
1697          * returns a future to the operation so that it can be executed in parallel to other requests.
1698          */
1699         virtual Model::SearchPlaceIndexForPositionOutcomeCallable SearchPlaceIndexForPositionCallable(const Model::SearchPlaceIndexForPositionRequest& request) const;
1700 
1701         /**
1702          * <p>Reverse geocodes a given coordinate and returns a legible address. Allows you
1703          * to search for Places or points of interest near a given position.</p><p><h3>See
1704          * Also:</h3>   <a
1705          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/SearchPlaceIndexForPosition">AWS
1706          * API Reference</a></p>
1707          *
1708          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1709          */
1710         virtual void SearchPlaceIndexForPositionAsync(const Model::SearchPlaceIndexForPositionRequest& request, const SearchPlaceIndexForPositionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1711 
1712         /**
1713          * <p>Geocodes free-form text, such as an address, name, city, or region to allow
1714          * you to search for Places or points of interest. </p> <p>Includes the option to
1715          * apply additional parameters to narrow your list of results.</p>  <p>You
1716          * can search for places near a given position using <code>BiasPosition</code>, or
1717          * filter results within a bounding box using <code>FilterBBox</code>. Providing
1718          * both parameters simultaneously returns an error.</p> <p><h3>See
1719          * Also:</h3>   <a
1720          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/SearchPlaceIndexForText">AWS
1721          * API Reference</a></p>
1722          */
1723         virtual Model::SearchPlaceIndexForTextOutcome SearchPlaceIndexForText(const Model::SearchPlaceIndexForTextRequest& request) const;
1724 
1725         /**
1726          * <p>Geocodes free-form text, such as an address, name, city, or region to allow
1727          * you to search for Places or points of interest. </p> <p>Includes the option to
1728          * apply additional parameters to narrow your list of results.</p>  <p>You
1729          * can search for places near a given position using <code>BiasPosition</code>, or
1730          * filter results within a bounding box using <code>FilterBBox</code>. Providing
1731          * both parameters simultaneously returns an error.</p> <p><h3>See
1732          * Also:</h3>   <a
1733          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/SearchPlaceIndexForText">AWS
1734          * API Reference</a></p>
1735          *
1736          * returns a future to the operation so that it can be executed in parallel to other requests.
1737          */
1738         virtual Model::SearchPlaceIndexForTextOutcomeCallable SearchPlaceIndexForTextCallable(const Model::SearchPlaceIndexForTextRequest& request) const;
1739 
1740         /**
1741          * <p>Geocodes free-form text, such as an address, name, city, or region to allow
1742          * you to search for Places or points of interest. </p> <p>Includes the option to
1743          * apply additional parameters to narrow your list of results.</p>  <p>You
1744          * can search for places near a given position using <code>BiasPosition</code>, or
1745          * filter results within a bounding box using <code>FilterBBox</code>. Providing
1746          * both parameters simultaneously returns an error.</p> <p><h3>See
1747          * Also:</h3>   <a
1748          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/SearchPlaceIndexForText">AWS
1749          * API Reference</a></p>
1750          *
1751          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1752          */
1753         virtual void SearchPlaceIndexForTextAsync(const Model::SearchPlaceIndexForTextRequest& request, const SearchPlaceIndexForTextResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1754 
1755         /**
1756          * <p>Assigns one or more tags (key-value pairs) to the specified Amazon Location
1757          * Service resource.</p> <pre><code> &lt;p&gt;Tags can help you organize and
1758          * categorize your resources. You can also use them to scope user permissions, by
1759          * granting a user permission to access or change only resources with certain tag
1760          * values.&lt;/p&gt; &lt;p&gt;You can use the &lt;code&gt;TagResource&lt;/code&gt;
1761          * operation with an Amazon Location Service resource that already has tags. If you
1762          * specify a new tag key for the resource, this tag is appended to the tags already
1763          * associated with the resource. If you specify a tag key that's already associated
1764          * with the resource, the new tag value that you specify replaces the previous
1765          * value for that tag. &lt;/p&gt; &lt;p&gt;You can associate up to 50 tags with a
1766          * resource.&lt;/p&gt; </code></pre><p><h3>See Also:</h3>   <a
1767          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/TagResource">AWS
1768          * API Reference</a></p>
1769          */
1770         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
1771 
1772         /**
1773          * <p>Assigns one or more tags (key-value pairs) to the specified Amazon Location
1774          * Service resource.</p> <pre><code> &lt;p&gt;Tags can help you organize and
1775          * categorize your resources. You can also use them to scope user permissions, by
1776          * granting a user permission to access or change only resources with certain tag
1777          * values.&lt;/p&gt; &lt;p&gt;You can use the &lt;code&gt;TagResource&lt;/code&gt;
1778          * operation with an Amazon Location Service resource that already has tags. If you
1779          * specify a new tag key for the resource, this tag is appended to the tags already
1780          * associated with the resource. If you specify a tag key that's already associated
1781          * with the resource, the new tag value that you specify replaces the previous
1782          * value for that tag. &lt;/p&gt; &lt;p&gt;You can associate up to 50 tags with a
1783          * resource.&lt;/p&gt; </code></pre><p><h3>See Also:</h3>   <a
1784          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/TagResource">AWS
1785          * API Reference</a></p>
1786          *
1787          * returns a future to the operation so that it can be executed in parallel to other requests.
1788          */
1789         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
1790 
1791         /**
1792          * <p>Assigns one or more tags (key-value pairs) to the specified Amazon Location
1793          * Service resource.</p> <pre><code> &lt;p&gt;Tags can help you organize and
1794          * categorize your resources. You can also use them to scope user permissions, by
1795          * granting a user permission to access or change only resources with certain tag
1796          * values.&lt;/p&gt; &lt;p&gt;You can use the &lt;code&gt;TagResource&lt;/code&gt;
1797          * operation with an Amazon Location Service resource that already has tags. If you
1798          * specify a new tag key for the resource, this tag is appended to the tags already
1799          * associated with the resource. If you specify a tag key that's already associated
1800          * with the resource, the new tag value that you specify replaces the previous
1801          * value for that tag. &lt;/p&gt; &lt;p&gt;You can associate up to 50 tags with a
1802          * resource.&lt;/p&gt; </code></pre><p><h3>See Also:</h3>   <a
1803          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/TagResource">AWS
1804          * API Reference</a></p>
1805          *
1806          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1807          */
1808         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1809 
1810         /**
1811          * <p>Removes one or more tags from the specified Amazon Location
1812          * resource.</p><p><h3>See Also:</h3>   <a
1813          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UntagResource">AWS
1814          * API Reference</a></p>
1815          */
1816         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
1817 
1818         /**
1819          * <p>Removes one or more tags from the specified Amazon Location
1820          * resource.</p><p><h3>See Also:</h3>   <a
1821          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UntagResource">AWS
1822          * API Reference</a></p>
1823          *
1824          * returns a future to the operation so that it can be executed in parallel to other requests.
1825          */
1826         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
1827 
1828         /**
1829          * <p>Removes one or more tags from the specified Amazon Location
1830          * resource.</p><p><h3>See Also:</h3>   <a
1831          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UntagResource">AWS
1832          * API Reference</a></p>
1833          *
1834          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1835          */
1836         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1837 
1838         /**
1839          * <p>Updates the specified properties of a given geofence
1840          * collection.</p><p><h3>See Also:</h3>   <a
1841          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateGeofenceCollection">AWS
1842          * API Reference</a></p>
1843          */
1844         virtual Model::UpdateGeofenceCollectionOutcome UpdateGeofenceCollection(const Model::UpdateGeofenceCollectionRequest& request) const;
1845 
1846         /**
1847          * <p>Updates the specified properties of a given geofence
1848          * collection.</p><p><h3>See Also:</h3>   <a
1849          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateGeofenceCollection">AWS
1850          * API Reference</a></p>
1851          *
1852          * returns a future to the operation so that it can be executed in parallel to other requests.
1853          */
1854         virtual Model::UpdateGeofenceCollectionOutcomeCallable UpdateGeofenceCollectionCallable(const Model::UpdateGeofenceCollectionRequest& request) const;
1855 
1856         /**
1857          * <p>Updates the specified properties of a given geofence
1858          * collection.</p><p><h3>See Also:</h3>   <a
1859          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateGeofenceCollection">AWS
1860          * API Reference</a></p>
1861          *
1862          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1863          */
1864         virtual void UpdateGeofenceCollectionAsync(const Model::UpdateGeofenceCollectionRequest& request, const UpdateGeofenceCollectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1865 
1866         /**
1867          * <p>Updates the specified properties of a given map resource.</p><p><h3>See
1868          * Also:</h3>   <a
1869          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateMap">AWS
1870          * API Reference</a></p>
1871          */
1872         virtual Model::UpdateMapOutcome UpdateMap(const Model::UpdateMapRequest& request) const;
1873 
1874         /**
1875          * <p>Updates the specified properties of a given map resource.</p><p><h3>See
1876          * Also:</h3>   <a
1877          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateMap">AWS
1878          * API Reference</a></p>
1879          *
1880          * returns a future to the operation so that it can be executed in parallel to other requests.
1881          */
1882         virtual Model::UpdateMapOutcomeCallable UpdateMapCallable(const Model::UpdateMapRequest& request) const;
1883 
1884         /**
1885          * <p>Updates the specified properties of a given map resource.</p><p><h3>See
1886          * Also:</h3>   <a
1887          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateMap">AWS
1888          * API Reference</a></p>
1889          *
1890          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1891          */
1892         virtual void UpdateMapAsync(const Model::UpdateMapRequest& request, const UpdateMapResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1893 
1894         /**
1895          * <p>Updates the specified properties of a given place index
1896          * resource.</p><p><h3>See Also:</h3>   <a
1897          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdatePlaceIndex">AWS
1898          * API Reference</a></p>
1899          */
1900         virtual Model::UpdatePlaceIndexOutcome UpdatePlaceIndex(const Model::UpdatePlaceIndexRequest& request) const;
1901 
1902         /**
1903          * <p>Updates the specified properties of a given place index
1904          * resource.</p><p><h3>See Also:</h3>   <a
1905          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdatePlaceIndex">AWS
1906          * API Reference</a></p>
1907          *
1908          * returns a future to the operation so that it can be executed in parallel to other requests.
1909          */
1910         virtual Model::UpdatePlaceIndexOutcomeCallable UpdatePlaceIndexCallable(const Model::UpdatePlaceIndexRequest& request) const;
1911 
1912         /**
1913          * <p>Updates the specified properties of a given place index
1914          * resource.</p><p><h3>See Also:</h3>   <a
1915          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdatePlaceIndex">AWS
1916          * API Reference</a></p>
1917          *
1918          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1919          */
1920         virtual void UpdatePlaceIndexAsync(const Model::UpdatePlaceIndexRequest& request, const UpdatePlaceIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1921 
1922         /**
1923          * <p>Updates the specified properties for a given route calculator
1924          * resource.</p><p><h3>See Also:</h3>   <a
1925          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateRouteCalculator">AWS
1926          * API Reference</a></p>
1927          */
1928         virtual Model::UpdateRouteCalculatorOutcome UpdateRouteCalculator(const Model::UpdateRouteCalculatorRequest& request) const;
1929 
1930         /**
1931          * <p>Updates the specified properties for a given route calculator
1932          * resource.</p><p><h3>See Also:</h3>   <a
1933          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateRouteCalculator">AWS
1934          * API Reference</a></p>
1935          *
1936          * returns a future to the operation so that it can be executed in parallel to other requests.
1937          */
1938         virtual Model::UpdateRouteCalculatorOutcomeCallable UpdateRouteCalculatorCallable(const Model::UpdateRouteCalculatorRequest& request) const;
1939 
1940         /**
1941          * <p>Updates the specified properties for a given route calculator
1942          * resource.</p><p><h3>See Also:</h3>   <a
1943          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateRouteCalculator">AWS
1944          * API Reference</a></p>
1945          *
1946          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1947          */
1948         virtual void UpdateRouteCalculatorAsync(const Model::UpdateRouteCalculatorRequest& request, const UpdateRouteCalculatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1949 
1950         /**
1951          * <p>Updates the specified properties of a given tracker resource.</p><p><h3>See
1952          * Also:</h3>   <a
1953          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateTracker">AWS
1954          * API Reference</a></p>
1955          */
1956         virtual Model::UpdateTrackerOutcome UpdateTracker(const Model::UpdateTrackerRequest& request) const;
1957 
1958         /**
1959          * <p>Updates the specified properties of a given tracker resource.</p><p><h3>See
1960          * Also:</h3>   <a
1961          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateTracker">AWS
1962          * API Reference</a></p>
1963          *
1964          * returns a future to the operation so that it can be executed in parallel to other requests.
1965          */
1966         virtual Model::UpdateTrackerOutcomeCallable UpdateTrackerCallable(const Model::UpdateTrackerRequest& request) const;
1967 
1968         /**
1969          * <p>Updates the specified properties of a given tracker resource.</p><p><h3>See
1970          * Also:</h3>   <a
1971          * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/UpdateTracker">AWS
1972          * API Reference</a></p>
1973          *
1974          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1975          */
1976         virtual void UpdateTrackerAsync(const Model::UpdateTrackerRequest& request, const UpdateTrackerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1977 
1978 
1979       void OverrideEndpoint(const Aws::String& endpoint);
1980     private:
1981       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
1982         void AssociateTrackerConsumerAsyncHelper(const Model::AssociateTrackerConsumerRequest& request, const AssociateTrackerConsumerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1983         void BatchDeleteDevicePositionHistoryAsyncHelper(const Model::BatchDeleteDevicePositionHistoryRequest& request, const BatchDeleteDevicePositionHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1984         void BatchDeleteGeofenceAsyncHelper(const Model::BatchDeleteGeofenceRequest& request, const BatchDeleteGeofenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1985         void BatchEvaluateGeofencesAsyncHelper(const Model::BatchEvaluateGeofencesRequest& request, const BatchEvaluateGeofencesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1986         void BatchGetDevicePositionAsyncHelper(const Model::BatchGetDevicePositionRequest& request, const BatchGetDevicePositionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1987         void BatchPutGeofenceAsyncHelper(const Model::BatchPutGeofenceRequest& request, const BatchPutGeofenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1988         void BatchUpdateDevicePositionAsyncHelper(const Model::BatchUpdateDevicePositionRequest& request, const BatchUpdateDevicePositionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1989         void CalculateRouteAsyncHelper(const Model::CalculateRouteRequest& request, const CalculateRouteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1990         void CreateGeofenceCollectionAsyncHelper(const Model::CreateGeofenceCollectionRequest& request, const CreateGeofenceCollectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1991         void CreateMapAsyncHelper(const Model::CreateMapRequest& request, const CreateMapResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1992         void CreatePlaceIndexAsyncHelper(const Model::CreatePlaceIndexRequest& request, const CreatePlaceIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1993         void CreateRouteCalculatorAsyncHelper(const Model::CreateRouteCalculatorRequest& request, const CreateRouteCalculatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1994         void CreateTrackerAsyncHelper(const Model::CreateTrackerRequest& request, const CreateTrackerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1995         void DeleteGeofenceCollectionAsyncHelper(const Model::DeleteGeofenceCollectionRequest& request, const DeleteGeofenceCollectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1996         void DeleteMapAsyncHelper(const Model::DeleteMapRequest& request, const DeleteMapResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1997         void DeletePlaceIndexAsyncHelper(const Model::DeletePlaceIndexRequest& request, const DeletePlaceIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1998         void DeleteRouteCalculatorAsyncHelper(const Model::DeleteRouteCalculatorRequest& request, const DeleteRouteCalculatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1999         void DeleteTrackerAsyncHelper(const Model::DeleteTrackerRequest& request, const DeleteTrackerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2000         void DescribeGeofenceCollectionAsyncHelper(const Model::DescribeGeofenceCollectionRequest& request, const DescribeGeofenceCollectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2001         void DescribeMapAsyncHelper(const Model::DescribeMapRequest& request, const DescribeMapResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2002         void DescribePlaceIndexAsyncHelper(const Model::DescribePlaceIndexRequest& request, const DescribePlaceIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2003         void DescribeRouteCalculatorAsyncHelper(const Model::DescribeRouteCalculatorRequest& request, const DescribeRouteCalculatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2004         void DescribeTrackerAsyncHelper(const Model::DescribeTrackerRequest& request, const DescribeTrackerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2005         void DisassociateTrackerConsumerAsyncHelper(const Model::DisassociateTrackerConsumerRequest& request, const DisassociateTrackerConsumerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2006         void GetDevicePositionAsyncHelper(const Model::GetDevicePositionRequest& request, const GetDevicePositionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2007         void GetDevicePositionHistoryAsyncHelper(const Model::GetDevicePositionHistoryRequest& request, const GetDevicePositionHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2008         void GetGeofenceAsyncHelper(const Model::GetGeofenceRequest& request, const GetGeofenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2009         void GetMapGlyphsAsyncHelper(const Model::GetMapGlyphsRequest& request, const GetMapGlyphsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2010         void GetMapSpritesAsyncHelper(const Model::GetMapSpritesRequest& request, const GetMapSpritesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2011         void GetMapStyleDescriptorAsyncHelper(const Model::GetMapStyleDescriptorRequest& request, const GetMapStyleDescriptorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2012         void GetMapTileAsyncHelper(const Model::GetMapTileRequest& request, const GetMapTileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2013         void ListDevicePositionsAsyncHelper(const Model::ListDevicePositionsRequest& request, const ListDevicePositionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2014         void ListGeofenceCollectionsAsyncHelper(const Model::ListGeofenceCollectionsRequest& request, const ListGeofenceCollectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2015         void ListGeofencesAsyncHelper(const Model::ListGeofencesRequest& request, const ListGeofencesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2016         void ListMapsAsyncHelper(const Model::ListMapsRequest& request, const ListMapsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2017         void ListPlaceIndexesAsyncHelper(const Model::ListPlaceIndexesRequest& request, const ListPlaceIndexesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2018         void ListRouteCalculatorsAsyncHelper(const Model::ListRouteCalculatorsRequest& request, const ListRouteCalculatorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2019         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2020         void ListTrackerConsumersAsyncHelper(const Model::ListTrackerConsumersRequest& request, const ListTrackerConsumersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2021         void ListTrackersAsyncHelper(const Model::ListTrackersRequest& request, const ListTrackersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2022         void PutGeofenceAsyncHelper(const Model::PutGeofenceRequest& request, const PutGeofenceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2023         void SearchPlaceIndexForPositionAsyncHelper(const Model::SearchPlaceIndexForPositionRequest& request, const SearchPlaceIndexForPositionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2024         void SearchPlaceIndexForTextAsyncHelper(const Model::SearchPlaceIndexForTextRequest& request, const SearchPlaceIndexForTextResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2025         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2026         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2027         void UpdateGeofenceCollectionAsyncHelper(const Model::UpdateGeofenceCollectionRequest& request, const UpdateGeofenceCollectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2028         void UpdateMapAsyncHelper(const Model::UpdateMapRequest& request, const UpdateMapResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2029         void UpdatePlaceIndexAsyncHelper(const Model::UpdatePlaceIndexRequest& request, const UpdatePlaceIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2030         void UpdateRouteCalculatorAsyncHelper(const Model::UpdateRouteCalculatorRequest& request, const UpdateRouteCalculatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2031         void UpdateTrackerAsyncHelper(const Model::UpdateTrackerRequest& request, const UpdateTrackerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2032 
2033       Aws::String m_baseUri;
2034       Aws::String m_scheme;
2035       bool m_enableHostPrefixInjection;
2036       Aws::String m_configScheme;
2037       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
2038   };
2039 
2040 } // namespace LocationService
2041 } // namespace Aws
2042