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/savingsplans/SavingsPlans_EXPORTS.h>
8 #include <aws/savingsplans/SavingsPlansErrors.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/savingsplans/model/CreateSavingsPlanResult.h>
15 #include <aws/savingsplans/model/DeleteQueuedSavingsPlanResult.h>
16 #include <aws/savingsplans/model/DescribeSavingsPlanRatesResult.h>
17 #include <aws/savingsplans/model/DescribeSavingsPlansResult.h>
18 #include <aws/savingsplans/model/DescribeSavingsPlansOfferingRatesResult.h>
19 #include <aws/savingsplans/model/DescribeSavingsPlansOfferingsResult.h>
20 #include <aws/savingsplans/model/ListTagsForResourceResult.h>
21 #include <aws/savingsplans/model/TagResourceResult.h>
22 #include <aws/savingsplans/model/UntagResourceResult.h>
23 #include <aws/core/client/AsyncCallerContext.h>
24 #include <aws/core/http/HttpTypes.h>
25 #include <future>
26 #include <functional>
27 
28 namespace Aws
29 {
30 
31 namespace Http
32 {
33   class HttpClient;
34   class HttpClientFactory;
35 } // namespace Http
36 
37 namespace Utils
38 {
39   template< typename R, typename E> class Outcome;
40 namespace Threading
41 {
42   class Executor;
43 } // namespace Threading
44 } // namespace Utils
45 
46 namespace Auth
47 {
48   class AWSCredentials;
49   class AWSCredentialsProvider;
50 } // namespace Auth
51 
52 namespace Client
53 {
54   class RetryStrategy;
55 } // namespace Client
56 
57 namespace SavingsPlans
58 {
59 
60 namespace Model
61 {
62         class CreateSavingsPlanRequest;
63         class DeleteQueuedSavingsPlanRequest;
64         class DescribeSavingsPlanRatesRequest;
65         class DescribeSavingsPlansRequest;
66         class DescribeSavingsPlansOfferingRatesRequest;
67         class DescribeSavingsPlansOfferingsRequest;
68         class ListTagsForResourceRequest;
69         class TagResourceRequest;
70         class UntagResourceRequest;
71 
72         typedef Aws::Utils::Outcome<CreateSavingsPlanResult, SavingsPlansError> CreateSavingsPlanOutcome;
73         typedef Aws::Utils::Outcome<DeleteQueuedSavingsPlanResult, SavingsPlansError> DeleteQueuedSavingsPlanOutcome;
74         typedef Aws::Utils::Outcome<DescribeSavingsPlanRatesResult, SavingsPlansError> DescribeSavingsPlanRatesOutcome;
75         typedef Aws::Utils::Outcome<DescribeSavingsPlansResult, SavingsPlansError> DescribeSavingsPlansOutcome;
76         typedef Aws::Utils::Outcome<DescribeSavingsPlansOfferingRatesResult, SavingsPlansError> DescribeSavingsPlansOfferingRatesOutcome;
77         typedef Aws::Utils::Outcome<DescribeSavingsPlansOfferingsResult, SavingsPlansError> DescribeSavingsPlansOfferingsOutcome;
78         typedef Aws::Utils::Outcome<ListTagsForResourceResult, SavingsPlansError> ListTagsForResourceOutcome;
79         typedef Aws::Utils::Outcome<TagResourceResult, SavingsPlansError> TagResourceOutcome;
80         typedef Aws::Utils::Outcome<UntagResourceResult, SavingsPlansError> UntagResourceOutcome;
81 
82         typedef std::future<CreateSavingsPlanOutcome> CreateSavingsPlanOutcomeCallable;
83         typedef std::future<DeleteQueuedSavingsPlanOutcome> DeleteQueuedSavingsPlanOutcomeCallable;
84         typedef std::future<DescribeSavingsPlanRatesOutcome> DescribeSavingsPlanRatesOutcomeCallable;
85         typedef std::future<DescribeSavingsPlansOutcome> DescribeSavingsPlansOutcomeCallable;
86         typedef std::future<DescribeSavingsPlansOfferingRatesOutcome> DescribeSavingsPlansOfferingRatesOutcomeCallable;
87         typedef std::future<DescribeSavingsPlansOfferingsOutcome> DescribeSavingsPlansOfferingsOutcomeCallable;
88         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
89         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
90         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
91 } // namespace Model
92 
93   class SavingsPlansClient;
94 
95     typedef std::function<void(const SavingsPlansClient*, const Model::CreateSavingsPlanRequest&, const Model::CreateSavingsPlanOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateSavingsPlanResponseReceivedHandler;
96     typedef std::function<void(const SavingsPlansClient*, const Model::DeleteQueuedSavingsPlanRequest&, const Model::DeleteQueuedSavingsPlanOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteQueuedSavingsPlanResponseReceivedHandler;
97     typedef std::function<void(const SavingsPlansClient*, const Model::DescribeSavingsPlanRatesRequest&, const Model::DescribeSavingsPlanRatesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSavingsPlanRatesResponseReceivedHandler;
98     typedef std::function<void(const SavingsPlansClient*, const Model::DescribeSavingsPlansRequest&, const Model::DescribeSavingsPlansOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSavingsPlansResponseReceivedHandler;
99     typedef std::function<void(const SavingsPlansClient*, const Model::DescribeSavingsPlansOfferingRatesRequest&, const Model::DescribeSavingsPlansOfferingRatesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSavingsPlansOfferingRatesResponseReceivedHandler;
100     typedef std::function<void(const SavingsPlansClient*, const Model::DescribeSavingsPlansOfferingsRequest&, const Model::DescribeSavingsPlansOfferingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSavingsPlansOfferingsResponseReceivedHandler;
101     typedef std::function<void(const SavingsPlansClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
102     typedef std::function<void(const SavingsPlansClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
103     typedef std::function<void(const SavingsPlansClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
104 
105   /**
106    * <p>Savings Plans are a pricing model that offer significant savings on AWS usage
107    * (for example, on Amazon EC2 instances). You commit to a consistent amount of
108    * usage, in USD per hour, for a term of 1 or 3 years, and receive a lower price
109    * for that usage. For more information, see the <a
110    * href="https://docs.aws.amazon.com/savingsplans/latest/userguide/">AWS Savings
111    * Plans User Guide</a>.</p>
112    */
113   class AWS_SAVINGSPLANS_API SavingsPlansClient : public Aws::Client::AWSJsonClient
114   {
115     public:
116       typedef Aws::Client::AWSJsonClient BASECLASS;
117 
118        /**
119         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
120         * is not specified, it will be initialized to default values.
121         */
122         SavingsPlansClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
123 
124        /**
125         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
126         * is not specified, it will be initialized to default values.
127         */
128         SavingsPlansClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
129 
130        /**
131         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
132         * the default http client factory will be used
133         */
134         SavingsPlansClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
135             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
136 
137         virtual ~SavingsPlansClient();
138 
139 
140         /**
141          * <p>Creates a Savings Plan.</p><p><h3>See Also:</h3>   <a
142          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/CreateSavingsPlan">AWS
143          * API Reference</a></p>
144          */
145         virtual Model::CreateSavingsPlanOutcome CreateSavingsPlan(const Model::CreateSavingsPlanRequest& request) const;
146 
147         /**
148          * <p>Creates a Savings Plan.</p><p><h3>See Also:</h3>   <a
149          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/CreateSavingsPlan">AWS
150          * API Reference</a></p>
151          *
152          * returns a future to the operation so that it can be executed in parallel to other requests.
153          */
154         virtual Model::CreateSavingsPlanOutcomeCallable CreateSavingsPlanCallable(const Model::CreateSavingsPlanRequest& request) const;
155 
156         /**
157          * <p>Creates a Savings Plan.</p><p><h3>See Also:</h3>   <a
158          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/CreateSavingsPlan">AWS
159          * API Reference</a></p>
160          *
161          * Queues the request into a thread executor and triggers associated callback when operation has finished.
162          */
163         virtual void CreateSavingsPlanAsync(const Model::CreateSavingsPlanRequest& request, const CreateSavingsPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
164 
165         /**
166          * <p>Deletes the queued purchase for the specified Savings Plan.</p><p><h3>See
167          * Also:</h3>   <a
168          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DeleteQueuedSavingsPlan">AWS
169          * API Reference</a></p>
170          */
171         virtual Model::DeleteQueuedSavingsPlanOutcome DeleteQueuedSavingsPlan(const Model::DeleteQueuedSavingsPlanRequest& request) const;
172 
173         /**
174          * <p>Deletes the queued purchase for the specified Savings Plan.</p><p><h3>See
175          * Also:</h3>   <a
176          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DeleteQueuedSavingsPlan">AWS
177          * API Reference</a></p>
178          *
179          * returns a future to the operation so that it can be executed in parallel to other requests.
180          */
181         virtual Model::DeleteQueuedSavingsPlanOutcomeCallable DeleteQueuedSavingsPlanCallable(const Model::DeleteQueuedSavingsPlanRequest& request) const;
182 
183         /**
184          * <p>Deletes the queued purchase for the specified Savings Plan.</p><p><h3>See
185          * Also:</h3>   <a
186          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DeleteQueuedSavingsPlan">AWS
187          * API Reference</a></p>
188          *
189          * Queues the request into a thread executor and triggers associated callback when operation has finished.
190          */
191         virtual void DeleteQueuedSavingsPlanAsync(const Model::DeleteQueuedSavingsPlanRequest& request, const DeleteQueuedSavingsPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
192 
193         /**
194          * <p>Describes the specified Savings Plans rates.</p><p><h3>See Also:</h3>   <a
195          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlanRates">AWS
196          * API Reference</a></p>
197          */
198         virtual Model::DescribeSavingsPlanRatesOutcome DescribeSavingsPlanRates(const Model::DescribeSavingsPlanRatesRequest& request) const;
199 
200         /**
201          * <p>Describes the specified Savings Plans rates.</p><p><h3>See Also:</h3>   <a
202          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlanRates">AWS
203          * API Reference</a></p>
204          *
205          * returns a future to the operation so that it can be executed in parallel to other requests.
206          */
207         virtual Model::DescribeSavingsPlanRatesOutcomeCallable DescribeSavingsPlanRatesCallable(const Model::DescribeSavingsPlanRatesRequest& request) const;
208 
209         /**
210          * <p>Describes the specified Savings Plans rates.</p><p><h3>See Also:</h3>   <a
211          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlanRates">AWS
212          * API Reference</a></p>
213          *
214          * Queues the request into a thread executor and triggers associated callback when operation has finished.
215          */
216         virtual void DescribeSavingsPlanRatesAsync(const Model::DescribeSavingsPlanRatesRequest& request, const DescribeSavingsPlanRatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
217 
218         /**
219          * <p>Describes the specified Savings Plans.</p><p><h3>See Also:</h3>   <a
220          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlans">AWS
221          * API Reference</a></p>
222          */
223         virtual Model::DescribeSavingsPlansOutcome DescribeSavingsPlans(const Model::DescribeSavingsPlansRequest& request) const;
224 
225         /**
226          * <p>Describes the specified Savings Plans.</p><p><h3>See Also:</h3>   <a
227          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlans">AWS
228          * API Reference</a></p>
229          *
230          * returns a future to the operation so that it can be executed in parallel to other requests.
231          */
232         virtual Model::DescribeSavingsPlansOutcomeCallable DescribeSavingsPlansCallable(const Model::DescribeSavingsPlansRequest& request) const;
233 
234         /**
235          * <p>Describes the specified Savings Plans.</p><p><h3>See Also:</h3>   <a
236          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlans">AWS
237          * API Reference</a></p>
238          *
239          * Queues the request into a thread executor and triggers associated callback when operation has finished.
240          */
241         virtual void DescribeSavingsPlansAsync(const Model::DescribeSavingsPlansRequest& request, const DescribeSavingsPlansResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
242 
243         /**
244          * <p>Describes the specified Savings Plans offering rates.</p><p><h3>See
245          * Also:</h3>   <a
246          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlansOfferingRates">AWS
247          * API Reference</a></p>
248          */
249         virtual Model::DescribeSavingsPlansOfferingRatesOutcome DescribeSavingsPlansOfferingRates(const Model::DescribeSavingsPlansOfferingRatesRequest& request) const;
250 
251         /**
252          * <p>Describes the specified Savings Plans offering rates.</p><p><h3>See
253          * Also:</h3>   <a
254          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlansOfferingRates">AWS
255          * API Reference</a></p>
256          *
257          * returns a future to the operation so that it can be executed in parallel to other requests.
258          */
259         virtual Model::DescribeSavingsPlansOfferingRatesOutcomeCallable DescribeSavingsPlansOfferingRatesCallable(const Model::DescribeSavingsPlansOfferingRatesRequest& request) const;
260 
261         /**
262          * <p>Describes the specified Savings Plans offering rates.</p><p><h3>See
263          * Also:</h3>   <a
264          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlansOfferingRates">AWS
265          * API Reference</a></p>
266          *
267          * Queues the request into a thread executor and triggers associated callback when operation has finished.
268          */
269         virtual void DescribeSavingsPlansOfferingRatesAsync(const Model::DescribeSavingsPlansOfferingRatesRequest& request, const DescribeSavingsPlansOfferingRatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
270 
271         /**
272          * <p>Describes the specified Savings Plans offerings.</p><p><h3>See Also:</h3>
273          * <a
274          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlansOfferings">AWS
275          * API Reference</a></p>
276          */
277         virtual Model::DescribeSavingsPlansOfferingsOutcome DescribeSavingsPlansOfferings(const Model::DescribeSavingsPlansOfferingsRequest& request) const;
278 
279         /**
280          * <p>Describes the specified Savings Plans offerings.</p><p><h3>See Also:</h3>
281          * <a
282          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlansOfferings">AWS
283          * API Reference</a></p>
284          *
285          * returns a future to the operation so that it can be executed in parallel to other requests.
286          */
287         virtual Model::DescribeSavingsPlansOfferingsOutcomeCallable DescribeSavingsPlansOfferingsCallable(const Model::DescribeSavingsPlansOfferingsRequest& request) const;
288 
289         /**
290          * <p>Describes the specified Savings Plans offerings.</p><p><h3>See Also:</h3>
291          * <a
292          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/DescribeSavingsPlansOfferings">AWS
293          * API Reference</a></p>
294          *
295          * Queues the request into a thread executor and triggers associated callback when operation has finished.
296          */
297         virtual void DescribeSavingsPlansOfferingsAsync(const Model::DescribeSavingsPlansOfferingsRequest& request, const DescribeSavingsPlansOfferingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
298 
299         /**
300          * <p>Lists the tags for the specified resource.</p><p><h3>See Also:</h3>   <a
301          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/ListTagsForResource">AWS
302          * API Reference</a></p>
303          */
304         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
305 
306         /**
307          * <p>Lists the tags for the specified resource.</p><p><h3>See Also:</h3>   <a
308          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/ListTagsForResource">AWS
309          * API Reference</a></p>
310          *
311          * returns a future to the operation so that it can be executed in parallel to other requests.
312          */
313         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
314 
315         /**
316          * <p>Lists the tags for the specified resource.</p><p><h3>See Also:</h3>   <a
317          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/ListTagsForResource">AWS
318          * API Reference</a></p>
319          *
320          * Queues the request into a thread executor and triggers associated callback when operation has finished.
321          */
322         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
323 
324         /**
325          * <p>Adds the specified tags to the specified resource.</p><p><h3>See Also:</h3>
326          * <a
327          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/TagResource">AWS
328          * API Reference</a></p>
329          */
330         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
331 
332         /**
333          * <p>Adds the specified tags to the specified resource.</p><p><h3>See Also:</h3>
334          * <a
335          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/TagResource">AWS
336          * API Reference</a></p>
337          *
338          * returns a future to the operation so that it can be executed in parallel to other requests.
339          */
340         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
341 
342         /**
343          * <p>Adds the specified tags to the specified resource.</p><p><h3>See Also:</h3>
344          * <a
345          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/TagResource">AWS
346          * API Reference</a></p>
347          *
348          * Queues the request into a thread executor and triggers associated callback when operation has finished.
349          */
350         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
351 
352         /**
353          * <p>Removes the specified tags from the specified resource.</p><p><h3>See
354          * Also:</h3>   <a
355          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/UntagResource">AWS
356          * API Reference</a></p>
357          */
358         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
359 
360         /**
361          * <p>Removes the specified tags from the specified resource.</p><p><h3>See
362          * Also:</h3>   <a
363          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/UntagResource">AWS
364          * API Reference</a></p>
365          *
366          * returns a future to the operation so that it can be executed in parallel to other requests.
367          */
368         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
369 
370         /**
371          * <p>Removes the specified tags from the specified resource.</p><p><h3>See
372          * Also:</h3>   <a
373          * href="http://docs.aws.amazon.com/goto/WebAPI/savingsplans-2019-06-28/UntagResource">AWS
374          * API Reference</a></p>
375          *
376          * Queues the request into a thread executor and triggers associated callback when operation has finished.
377          */
378         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
379 
380 
381       void OverrideEndpoint(const Aws::String& endpoint);
382     private:
383       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
384         void CreateSavingsPlanAsyncHelper(const Model::CreateSavingsPlanRequest& request, const CreateSavingsPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
385         void DeleteQueuedSavingsPlanAsyncHelper(const Model::DeleteQueuedSavingsPlanRequest& request, const DeleteQueuedSavingsPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
386         void DescribeSavingsPlanRatesAsyncHelper(const Model::DescribeSavingsPlanRatesRequest& request, const DescribeSavingsPlanRatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
387         void DescribeSavingsPlansAsyncHelper(const Model::DescribeSavingsPlansRequest& request, const DescribeSavingsPlansResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
388         void DescribeSavingsPlansOfferingRatesAsyncHelper(const Model::DescribeSavingsPlansOfferingRatesRequest& request, const DescribeSavingsPlansOfferingRatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
389         void DescribeSavingsPlansOfferingsAsyncHelper(const Model::DescribeSavingsPlansOfferingsRequest& request, const DescribeSavingsPlansOfferingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
390         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
391         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
392         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
393 
394       Aws::String m_uri;
395       Aws::String m_configScheme;
396       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
397   };
398 
399 } // namespace SavingsPlans
400 } // namespace Aws
401