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/ce/CostExplorer_EXPORTS.h>
8 #include <aws/ce/CostExplorerErrors.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/ce/model/CreateAnomalyMonitorResult.h>
15 #include <aws/ce/model/CreateAnomalySubscriptionResult.h>
16 #include <aws/ce/model/CreateCostCategoryDefinitionResult.h>
17 #include <aws/ce/model/DeleteAnomalyMonitorResult.h>
18 #include <aws/ce/model/DeleteAnomalySubscriptionResult.h>
19 #include <aws/ce/model/DeleteCostCategoryDefinitionResult.h>
20 #include <aws/ce/model/DescribeCostCategoryDefinitionResult.h>
21 #include <aws/ce/model/GetAnomaliesResult.h>
22 #include <aws/ce/model/GetAnomalyMonitorsResult.h>
23 #include <aws/ce/model/GetAnomalySubscriptionsResult.h>
24 #include <aws/ce/model/GetCostAndUsageResult.h>
25 #include <aws/ce/model/GetCostAndUsageWithResourcesResult.h>
26 #include <aws/ce/model/GetCostCategoriesResult.h>
27 #include <aws/ce/model/GetCostForecastResult.h>
28 #include <aws/ce/model/GetDimensionValuesResult.h>
29 #include <aws/ce/model/GetReservationCoverageResult.h>
30 #include <aws/ce/model/GetReservationPurchaseRecommendationResult.h>
31 #include <aws/ce/model/GetReservationUtilizationResult.h>
32 #include <aws/ce/model/GetRightsizingRecommendationResult.h>
33 #include <aws/ce/model/GetSavingsPlansCoverageResult.h>
34 #include <aws/ce/model/GetSavingsPlansPurchaseRecommendationResult.h>
35 #include <aws/ce/model/GetSavingsPlansUtilizationResult.h>
36 #include <aws/ce/model/GetSavingsPlansUtilizationDetailsResult.h>
37 #include <aws/ce/model/GetTagsResult.h>
38 #include <aws/ce/model/GetUsageForecastResult.h>
39 #include <aws/ce/model/ListCostCategoryDefinitionsResult.h>
40 #include <aws/ce/model/ProvideAnomalyFeedbackResult.h>
41 #include <aws/ce/model/UpdateAnomalyMonitorResult.h>
42 #include <aws/ce/model/UpdateAnomalySubscriptionResult.h>
43 #include <aws/ce/model/UpdateCostCategoryDefinitionResult.h>
44 #include <aws/core/client/AsyncCallerContext.h>
45 #include <aws/core/http/HttpTypes.h>
46 #include <future>
47 #include <functional>
48 
49 namespace Aws
50 {
51 
52 namespace Http
53 {
54   class HttpClient;
55   class HttpClientFactory;
56 } // namespace Http
57 
58 namespace Utils
59 {
60   template< typename R, typename E> class Outcome;
61 namespace Threading
62 {
63   class Executor;
64 } // namespace Threading
65 } // namespace Utils
66 
67 namespace Auth
68 {
69   class AWSCredentials;
70   class AWSCredentialsProvider;
71 } // namespace Auth
72 
73 namespace Client
74 {
75   class RetryStrategy;
76 } // namespace Client
77 
78 namespace CostExplorer
79 {
80 
81 namespace Model
82 {
83         class CreateAnomalyMonitorRequest;
84         class CreateAnomalySubscriptionRequest;
85         class CreateCostCategoryDefinitionRequest;
86         class DeleteAnomalyMonitorRequest;
87         class DeleteAnomalySubscriptionRequest;
88         class DeleteCostCategoryDefinitionRequest;
89         class DescribeCostCategoryDefinitionRequest;
90         class GetAnomaliesRequest;
91         class GetAnomalyMonitorsRequest;
92         class GetAnomalySubscriptionsRequest;
93         class GetCostAndUsageRequest;
94         class GetCostAndUsageWithResourcesRequest;
95         class GetCostCategoriesRequest;
96         class GetCostForecastRequest;
97         class GetDimensionValuesRequest;
98         class GetReservationCoverageRequest;
99         class GetReservationPurchaseRecommendationRequest;
100         class GetReservationUtilizationRequest;
101         class GetRightsizingRecommendationRequest;
102         class GetSavingsPlansCoverageRequest;
103         class GetSavingsPlansPurchaseRecommendationRequest;
104         class GetSavingsPlansUtilizationRequest;
105         class GetSavingsPlansUtilizationDetailsRequest;
106         class GetTagsRequest;
107         class GetUsageForecastRequest;
108         class ListCostCategoryDefinitionsRequest;
109         class ProvideAnomalyFeedbackRequest;
110         class UpdateAnomalyMonitorRequest;
111         class UpdateAnomalySubscriptionRequest;
112         class UpdateCostCategoryDefinitionRequest;
113 
114         typedef Aws::Utils::Outcome<CreateAnomalyMonitorResult, CostExplorerError> CreateAnomalyMonitorOutcome;
115         typedef Aws::Utils::Outcome<CreateAnomalySubscriptionResult, CostExplorerError> CreateAnomalySubscriptionOutcome;
116         typedef Aws::Utils::Outcome<CreateCostCategoryDefinitionResult, CostExplorerError> CreateCostCategoryDefinitionOutcome;
117         typedef Aws::Utils::Outcome<DeleteAnomalyMonitorResult, CostExplorerError> DeleteAnomalyMonitorOutcome;
118         typedef Aws::Utils::Outcome<DeleteAnomalySubscriptionResult, CostExplorerError> DeleteAnomalySubscriptionOutcome;
119         typedef Aws::Utils::Outcome<DeleteCostCategoryDefinitionResult, CostExplorerError> DeleteCostCategoryDefinitionOutcome;
120         typedef Aws::Utils::Outcome<DescribeCostCategoryDefinitionResult, CostExplorerError> DescribeCostCategoryDefinitionOutcome;
121         typedef Aws::Utils::Outcome<GetAnomaliesResult, CostExplorerError> GetAnomaliesOutcome;
122         typedef Aws::Utils::Outcome<GetAnomalyMonitorsResult, CostExplorerError> GetAnomalyMonitorsOutcome;
123         typedef Aws::Utils::Outcome<GetAnomalySubscriptionsResult, CostExplorerError> GetAnomalySubscriptionsOutcome;
124         typedef Aws::Utils::Outcome<GetCostAndUsageResult, CostExplorerError> GetCostAndUsageOutcome;
125         typedef Aws::Utils::Outcome<GetCostAndUsageWithResourcesResult, CostExplorerError> GetCostAndUsageWithResourcesOutcome;
126         typedef Aws::Utils::Outcome<GetCostCategoriesResult, CostExplorerError> GetCostCategoriesOutcome;
127         typedef Aws::Utils::Outcome<GetCostForecastResult, CostExplorerError> GetCostForecastOutcome;
128         typedef Aws::Utils::Outcome<GetDimensionValuesResult, CostExplorerError> GetDimensionValuesOutcome;
129         typedef Aws::Utils::Outcome<GetReservationCoverageResult, CostExplorerError> GetReservationCoverageOutcome;
130         typedef Aws::Utils::Outcome<GetReservationPurchaseRecommendationResult, CostExplorerError> GetReservationPurchaseRecommendationOutcome;
131         typedef Aws::Utils::Outcome<GetReservationUtilizationResult, CostExplorerError> GetReservationUtilizationOutcome;
132         typedef Aws::Utils::Outcome<GetRightsizingRecommendationResult, CostExplorerError> GetRightsizingRecommendationOutcome;
133         typedef Aws::Utils::Outcome<GetSavingsPlansCoverageResult, CostExplorerError> GetSavingsPlansCoverageOutcome;
134         typedef Aws::Utils::Outcome<GetSavingsPlansPurchaseRecommendationResult, CostExplorerError> GetSavingsPlansPurchaseRecommendationOutcome;
135         typedef Aws::Utils::Outcome<GetSavingsPlansUtilizationResult, CostExplorerError> GetSavingsPlansUtilizationOutcome;
136         typedef Aws::Utils::Outcome<GetSavingsPlansUtilizationDetailsResult, CostExplorerError> GetSavingsPlansUtilizationDetailsOutcome;
137         typedef Aws::Utils::Outcome<GetTagsResult, CostExplorerError> GetTagsOutcome;
138         typedef Aws::Utils::Outcome<GetUsageForecastResult, CostExplorerError> GetUsageForecastOutcome;
139         typedef Aws::Utils::Outcome<ListCostCategoryDefinitionsResult, CostExplorerError> ListCostCategoryDefinitionsOutcome;
140         typedef Aws::Utils::Outcome<ProvideAnomalyFeedbackResult, CostExplorerError> ProvideAnomalyFeedbackOutcome;
141         typedef Aws::Utils::Outcome<UpdateAnomalyMonitorResult, CostExplorerError> UpdateAnomalyMonitorOutcome;
142         typedef Aws::Utils::Outcome<UpdateAnomalySubscriptionResult, CostExplorerError> UpdateAnomalySubscriptionOutcome;
143         typedef Aws::Utils::Outcome<UpdateCostCategoryDefinitionResult, CostExplorerError> UpdateCostCategoryDefinitionOutcome;
144 
145         typedef std::future<CreateAnomalyMonitorOutcome> CreateAnomalyMonitorOutcomeCallable;
146         typedef std::future<CreateAnomalySubscriptionOutcome> CreateAnomalySubscriptionOutcomeCallable;
147         typedef std::future<CreateCostCategoryDefinitionOutcome> CreateCostCategoryDefinitionOutcomeCallable;
148         typedef std::future<DeleteAnomalyMonitorOutcome> DeleteAnomalyMonitorOutcomeCallable;
149         typedef std::future<DeleteAnomalySubscriptionOutcome> DeleteAnomalySubscriptionOutcomeCallable;
150         typedef std::future<DeleteCostCategoryDefinitionOutcome> DeleteCostCategoryDefinitionOutcomeCallable;
151         typedef std::future<DescribeCostCategoryDefinitionOutcome> DescribeCostCategoryDefinitionOutcomeCallable;
152         typedef std::future<GetAnomaliesOutcome> GetAnomaliesOutcomeCallable;
153         typedef std::future<GetAnomalyMonitorsOutcome> GetAnomalyMonitorsOutcomeCallable;
154         typedef std::future<GetAnomalySubscriptionsOutcome> GetAnomalySubscriptionsOutcomeCallable;
155         typedef std::future<GetCostAndUsageOutcome> GetCostAndUsageOutcomeCallable;
156         typedef std::future<GetCostAndUsageWithResourcesOutcome> GetCostAndUsageWithResourcesOutcomeCallable;
157         typedef std::future<GetCostCategoriesOutcome> GetCostCategoriesOutcomeCallable;
158         typedef std::future<GetCostForecastOutcome> GetCostForecastOutcomeCallable;
159         typedef std::future<GetDimensionValuesOutcome> GetDimensionValuesOutcomeCallable;
160         typedef std::future<GetReservationCoverageOutcome> GetReservationCoverageOutcomeCallable;
161         typedef std::future<GetReservationPurchaseRecommendationOutcome> GetReservationPurchaseRecommendationOutcomeCallable;
162         typedef std::future<GetReservationUtilizationOutcome> GetReservationUtilizationOutcomeCallable;
163         typedef std::future<GetRightsizingRecommendationOutcome> GetRightsizingRecommendationOutcomeCallable;
164         typedef std::future<GetSavingsPlansCoverageOutcome> GetSavingsPlansCoverageOutcomeCallable;
165         typedef std::future<GetSavingsPlansPurchaseRecommendationOutcome> GetSavingsPlansPurchaseRecommendationOutcomeCallable;
166         typedef std::future<GetSavingsPlansUtilizationOutcome> GetSavingsPlansUtilizationOutcomeCallable;
167         typedef std::future<GetSavingsPlansUtilizationDetailsOutcome> GetSavingsPlansUtilizationDetailsOutcomeCallable;
168         typedef std::future<GetTagsOutcome> GetTagsOutcomeCallable;
169         typedef std::future<GetUsageForecastOutcome> GetUsageForecastOutcomeCallable;
170         typedef std::future<ListCostCategoryDefinitionsOutcome> ListCostCategoryDefinitionsOutcomeCallable;
171         typedef std::future<ProvideAnomalyFeedbackOutcome> ProvideAnomalyFeedbackOutcomeCallable;
172         typedef std::future<UpdateAnomalyMonitorOutcome> UpdateAnomalyMonitorOutcomeCallable;
173         typedef std::future<UpdateAnomalySubscriptionOutcome> UpdateAnomalySubscriptionOutcomeCallable;
174         typedef std::future<UpdateCostCategoryDefinitionOutcome> UpdateCostCategoryDefinitionOutcomeCallable;
175 } // namespace Model
176 
177   class CostExplorerClient;
178 
179     typedef std::function<void(const CostExplorerClient*, const Model::CreateAnomalyMonitorRequest&, const Model::CreateAnomalyMonitorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateAnomalyMonitorResponseReceivedHandler;
180     typedef std::function<void(const CostExplorerClient*, const Model::CreateAnomalySubscriptionRequest&, const Model::CreateAnomalySubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateAnomalySubscriptionResponseReceivedHandler;
181     typedef std::function<void(const CostExplorerClient*, const Model::CreateCostCategoryDefinitionRequest&, const Model::CreateCostCategoryDefinitionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateCostCategoryDefinitionResponseReceivedHandler;
182     typedef std::function<void(const CostExplorerClient*, const Model::DeleteAnomalyMonitorRequest&, const Model::DeleteAnomalyMonitorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteAnomalyMonitorResponseReceivedHandler;
183     typedef std::function<void(const CostExplorerClient*, const Model::DeleteAnomalySubscriptionRequest&, const Model::DeleteAnomalySubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteAnomalySubscriptionResponseReceivedHandler;
184     typedef std::function<void(const CostExplorerClient*, const Model::DeleteCostCategoryDefinitionRequest&, const Model::DeleteCostCategoryDefinitionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteCostCategoryDefinitionResponseReceivedHandler;
185     typedef std::function<void(const CostExplorerClient*, const Model::DescribeCostCategoryDefinitionRequest&, const Model::DescribeCostCategoryDefinitionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCostCategoryDefinitionResponseReceivedHandler;
186     typedef std::function<void(const CostExplorerClient*, const Model::GetAnomaliesRequest&, const Model::GetAnomaliesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAnomaliesResponseReceivedHandler;
187     typedef std::function<void(const CostExplorerClient*, const Model::GetAnomalyMonitorsRequest&, const Model::GetAnomalyMonitorsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAnomalyMonitorsResponseReceivedHandler;
188     typedef std::function<void(const CostExplorerClient*, const Model::GetAnomalySubscriptionsRequest&, const Model::GetAnomalySubscriptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAnomalySubscriptionsResponseReceivedHandler;
189     typedef std::function<void(const CostExplorerClient*, const Model::GetCostAndUsageRequest&, const Model::GetCostAndUsageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetCostAndUsageResponseReceivedHandler;
190     typedef std::function<void(const CostExplorerClient*, const Model::GetCostAndUsageWithResourcesRequest&, const Model::GetCostAndUsageWithResourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetCostAndUsageWithResourcesResponseReceivedHandler;
191     typedef std::function<void(const CostExplorerClient*, const Model::GetCostCategoriesRequest&, const Model::GetCostCategoriesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetCostCategoriesResponseReceivedHandler;
192     typedef std::function<void(const CostExplorerClient*, const Model::GetCostForecastRequest&, const Model::GetCostForecastOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetCostForecastResponseReceivedHandler;
193     typedef std::function<void(const CostExplorerClient*, const Model::GetDimensionValuesRequest&, const Model::GetDimensionValuesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDimensionValuesResponseReceivedHandler;
194     typedef std::function<void(const CostExplorerClient*, const Model::GetReservationCoverageRequest&, const Model::GetReservationCoverageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetReservationCoverageResponseReceivedHandler;
195     typedef std::function<void(const CostExplorerClient*, const Model::GetReservationPurchaseRecommendationRequest&, const Model::GetReservationPurchaseRecommendationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetReservationPurchaseRecommendationResponseReceivedHandler;
196     typedef std::function<void(const CostExplorerClient*, const Model::GetReservationUtilizationRequest&, const Model::GetReservationUtilizationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetReservationUtilizationResponseReceivedHandler;
197     typedef std::function<void(const CostExplorerClient*, const Model::GetRightsizingRecommendationRequest&, const Model::GetRightsizingRecommendationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetRightsizingRecommendationResponseReceivedHandler;
198     typedef std::function<void(const CostExplorerClient*, const Model::GetSavingsPlansCoverageRequest&, const Model::GetSavingsPlansCoverageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetSavingsPlansCoverageResponseReceivedHandler;
199     typedef std::function<void(const CostExplorerClient*, const Model::GetSavingsPlansPurchaseRecommendationRequest&, const Model::GetSavingsPlansPurchaseRecommendationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetSavingsPlansPurchaseRecommendationResponseReceivedHandler;
200     typedef std::function<void(const CostExplorerClient*, const Model::GetSavingsPlansUtilizationRequest&, const Model::GetSavingsPlansUtilizationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetSavingsPlansUtilizationResponseReceivedHandler;
201     typedef std::function<void(const CostExplorerClient*, const Model::GetSavingsPlansUtilizationDetailsRequest&, const Model::GetSavingsPlansUtilizationDetailsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetSavingsPlansUtilizationDetailsResponseReceivedHandler;
202     typedef std::function<void(const CostExplorerClient*, const Model::GetTagsRequest&, const Model::GetTagsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTagsResponseReceivedHandler;
203     typedef std::function<void(const CostExplorerClient*, const Model::GetUsageForecastRequest&, const Model::GetUsageForecastOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetUsageForecastResponseReceivedHandler;
204     typedef std::function<void(const CostExplorerClient*, const Model::ListCostCategoryDefinitionsRequest&, const Model::ListCostCategoryDefinitionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListCostCategoryDefinitionsResponseReceivedHandler;
205     typedef std::function<void(const CostExplorerClient*, const Model::ProvideAnomalyFeedbackRequest&, const Model::ProvideAnomalyFeedbackOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ProvideAnomalyFeedbackResponseReceivedHandler;
206     typedef std::function<void(const CostExplorerClient*, const Model::UpdateAnomalyMonitorRequest&, const Model::UpdateAnomalyMonitorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateAnomalyMonitorResponseReceivedHandler;
207     typedef std::function<void(const CostExplorerClient*, const Model::UpdateAnomalySubscriptionRequest&, const Model::UpdateAnomalySubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateAnomalySubscriptionResponseReceivedHandler;
208     typedef std::function<void(const CostExplorerClient*, const Model::UpdateCostCategoryDefinitionRequest&, const Model::UpdateCostCategoryDefinitionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateCostCategoryDefinitionResponseReceivedHandler;
209 
210   /**
211    * <p>You can use the Cost Explorer API to programmatically query your cost and
212    * usage data. You can query for aggregated data such as total monthly costs or
213    * total daily usage. You can also query for granular data. This might include the
214    * number of daily write operations for Amazon DynamoDB database tables in your
215    * production environment. </p> <p>Service Endpoint</p> <p>The Cost Explorer API
216    * provides the following endpoint:</p> <ul> <li> <p>
217    * <code>https://ce.us-east-1.amazonaws.com</code> </p> </li> </ul> <p>For
218    * information about the costs that are associated with the Cost Explorer API, see
219    * <a href="http://aws.amazon.com/aws-cost-management/pricing/">Amazon Web Services
220    * Cost Management Pricing</a>.</p>
221    */
222   class AWS_COSTEXPLORER_API CostExplorerClient : public Aws::Client::AWSJsonClient
223   {
224     public:
225       typedef Aws::Client::AWSJsonClient BASECLASS;
226 
227        /**
228         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
229         * is not specified, it will be initialized to default values.
230         */
231         CostExplorerClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
232 
233        /**
234         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
235         * is not specified, it will be initialized to default values.
236         */
237         CostExplorerClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
238 
239        /**
240         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
241         * the default http client factory will be used
242         */
243         CostExplorerClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
244             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
245 
246         virtual ~CostExplorerClient();
247 
248 
249         /**
250          * <p>Creates a new cost anomaly detection monitor with the requested type and
251          * monitor specification. </p><p><h3>See Also:</h3>   <a
252          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitor">AWS
253          * API Reference</a></p>
254          */
255         virtual Model::CreateAnomalyMonitorOutcome CreateAnomalyMonitor(const Model::CreateAnomalyMonitorRequest& request) const;
256 
257         /**
258          * <p>Creates a new cost anomaly detection monitor with the requested type and
259          * monitor specification. </p><p><h3>See Also:</h3>   <a
260          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitor">AWS
261          * API Reference</a></p>
262          *
263          * returns a future to the operation so that it can be executed in parallel to other requests.
264          */
265         virtual Model::CreateAnomalyMonitorOutcomeCallable CreateAnomalyMonitorCallable(const Model::CreateAnomalyMonitorRequest& request) const;
266 
267         /**
268          * <p>Creates a new cost anomaly detection monitor with the requested type and
269          * monitor specification. </p><p><h3>See Also:</h3>   <a
270          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitor">AWS
271          * API Reference</a></p>
272          *
273          * Queues the request into a thread executor and triggers associated callback when operation has finished.
274          */
275         virtual void CreateAnomalyMonitorAsync(const Model::CreateAnomalyMonitorRequest& request, const CreateAnomalyMonitorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
276 
277         /**
278          * <p>Adds a subscription to a cost anomaly detection monitor. You can use each
279          * subscription to define subscribers with email or SNS notifications. Email
280          * subscribers can set a dollar threshold and a time frequency for receiving
281          * notifications. </p><p><h3>See Also:</h3>   <a
282          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscription">AWS
283          * API Reference</a></p>
284          */
285         virtual Model::CreateAnomalySubscriptionOutcome CreateAnomalySubscription(const Model::CreateAnomalySubscriptionRequest& request) const;
286 
287         /**
288          * <p>Adds a subscription to a cost anomaly detection monitor. You can use each
289          * subscription to define subscribers with email or SNS notifications. Email
290          * subscribers can set a dollar threshold and a time frequency for receiving
291          * notifications. </p><p><h3>See Also:</h3>   <a
292          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscription">AWS
293          * API Reference</a></p>
294          *
295          * returns a future to the operation so that it can be executed in parallel to other requests.
296          */
297         virtual Model::CreateAnomalySubscriptionOutcomeCallable CreateAnomalySubscriptionCallable(const Model::CreateAnomalySubscriptionRequest& request) const;
298 
299         /**
300          * <p>Adds a subscription to a cost anomaly detection monitor. You can use each
301          * subscription to define subscribers with email or SNS notifications. Email
302          * subscribers can set a dollar threshold and a time frequency for receiving
303          * notifications. </p><p><h3>See Also:</h3>   <a
304          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscription">AWS
305          * API Reference</a></p>
306          *
307          * Queues the request into a thread executor and triggers associated callback when operation has finished.
308          */
309         virtual void CreateAnomalySubscriptionAsync(const Model::CreateAnomalySubscriptionRequest& request, const CreateAnomalySubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
310 
311         /**
312          * <p>Creates a new Cost Category with the requested name and rules.</p><p><h3>See
313          * Also:</h3>   <a
314          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition">AWS
315          * API Reference</a></p>
316          */
317         virtual Model::CreateCostCategoryDefinitionOutcome CreateCostCategoryDefinition(const Model::CreateCostCategoryDefinitionRequest& request) const;
318 
319         /**
320          * <p>Creates a new Cost Category with the requested name and rules.</p><p><h3>See
321          * Also:</h3>   <a
322          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition">AWS
323          * API Reference</a></p>
324          *
325          * returns a future to the operation so that it can be executed in parallel to other requests.
326          */
327         virtual Model::CreateCostCategoryDefinitionOutcomeCallable CreateCostCategoryDefinitionCallable(const Model::CreateCostCategoryDefinitionRequest& request) const;
328 
329         /**
330          * <p>Creates a new Cost Category with the requested name and rules.</p><p><h3>See
331          * Also:</h3>   <a
332          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition">AWS
333          * API Reference</a></p>
334          *
335          * Queues the request into a thread executor and triggers associated callback when operation has finished.
336          */
337         virtual void CreateCostCategoryDefinitionAsync(const Model::CreateCostCategoryDefinitionRequest& request, const CreateCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
338 
339         /**
340          * <p>Deletes a cost anomaly monitor. </p><p><h3>See Also:</h3>   <a
341          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalyMonitor">AWS
342          * API Reference</a></p>
343          */
344         virtual Model::DeleteAnomalyMonitorOutcome DeleteAnomalyMonitor(const Model::DeleteAnomalyMonitorRequest& request) const;
345 
346         /**
347          * <p>Deletes a cost anomaly monitor. </p><p><h3>See Also:</h3>   <a
348          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalyMonitor">AWS
349          * API Reference</a></p>
350          *
351          * returns a future to the operation so that it can be executed in parallel to other requests.
352          */
353         virtual Model::DeleteAnomalyMonitorOutcomeCallable DeleteAnomalyMonitorCallable(const Model::DeleteAnomalyMonitorRequest& request) const;
354 
355         /**
356          * <p>Deletes a cost anomaly monitor. </p><p><h3>See Also:</h3>   <a
357          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalyMonitor">AWS
358          * API Reference</a></p>
359          *
360          * Queues the request into a thread executor and triggers associated callback when operation has finished.
361          */
362         virtual void DeleteAnomalyMonitorAsync(const Model::DeleteAnomalyMonitorRequest& request, const DeleteAnomalyMonitorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
363 
364         /**
365          * <p>Deletes a cost anomaly subscription. </p><p><h3>See Also:</h3>   <a
366          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalySubscription">AWS
367          * API Reference</a></p>
368          */
369         virtual Model::DeleteAnomalySubscriptionOutcome DeleteAnomalySubscription(const Model::DeleteAnomalySubscriptionRequest& request) const;
370 
371         /**
372          * <p>Deletes a cost anomaly subscription. </p><p><h3>See Also:</h3>   <a
373          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalySubscription">AWS
374          * API Reference</a></p>
375          *
376          * returns a future to the operation so that it can be executed in parallel to other requests.
377          */
378         virtual Model::DeleteAnomalySubscriptionOutcomeCallable DeleteAnomalySubscriptionCallable(const Model::DeleteAnomalySubscriptionRequest& request) const;
379 
380         /**
381          * <p>Deletes a cost anomaly subscription. </p><p><h3>See Also:</h3>   <a
382          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalySubscription">AWS
383          * API Reference</a></p>
384          *
385          * Queues the request into a thread executor and triggers associated callback when operation has finished.
386          */
387         virtual void DeleteAnomalySubscriptionAsync(const Model::DeleteAnomalySubscriptionRequest& request, const DeleteAnomalySubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
388 
389         /**
390          * <p>Deletes a Cost Category. Expenses from this month going forward will no
391          * longer be categorized with this Cost Category.</p><p><h3>See Also:</h3>   <a
392          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition">AWS
393          * API Reference</a></p>
394          */
395         virtual Model::DeleteCostCategoryDefinitionOutcome DeleteCostCategoryDefinition(const Model::DeleteCostCategoryDefinitionRequest& request) const;
396 
397         /**
398          * <p>Deletes a Cost Category. Expenses from this month going forward will no
399          * longer be categorized with this Cost Category.</p><p><h3>See Also:</h3>   <a
400          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition">AWS
401          * API Reference</a></p>
402          *
403          * returns a future to the operation so that it can be executed in parallel to other requests.
404          */
405         virtual Model::DeleteCostCategoryDefinitionOutcomeCallable DeleteCostCategoryDefinitionCallable(const Model::DeleteCostCategoryDefinitionRequest& request) const;
406 
407         /**
408          * <p>Deletes a Cost Category. Expenses from this month going forward will no
409          * longer be categorized with this Cost Category.</p><p><h3>See Also:</h3>   <a
410          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition">AWS
411          * API Reference</a></p>
412          *
413          * Queues the request into a thread executor and triggers associated callback when operation has finished.
414          */
415         virtual void DeleteCostCategoryDefinitionAsync(const Model::DeleteCostCategoryDefinitionRequest& request, const DeleteCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
416 
417         /**
418          * <p>Returns the name, ARN, rules, definition, and effective dates of a Cost
419          * Category that's defined in the account.</p> <p>You have the option to use
420          * <code>EffectiveOn</code> to return a Cost Category that is active on a specific
421          * date. If there is no <code>EffectiveOn</code> specified, you’ll see a Cost
422          * Category that is effective on the current date. If Cost Category is still
423          * effective, <code>EffectiveEnd</code> is omitted in the response. </p><p><h3>See
424          * Also:</h3>   <a
425          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition">AWS
426          * API Reference</a></p>
427          */
428         virtual Model::DescribeCostCategoryDefinitionOutcome DescribeCostCategoryDefinition(const Model::DescribeCostCategoryDefinitionRequest& request) const;
429 
430         /**
431          * <p>Returns the name, ARN, rules, definition, and effective dates of a Cost
432          * Category that's defined in the account.</p> <p>You have the option to use
433          * <code>EffectiveOn</code> to return a Cost Category that is active on a specific
434          * date. If there is no <code>EffectiveOn</code> specified, you’ll see a Cost
435          * Category that is effective on the current date. If Cost Category is still
436          * effective, <code>EffectiveEnd</code> is omitted in the response. </p><p><h3>See
437          * Also:</h3>   <a
438          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition">AWS
439          * API Reference</a></p>
440          *
441          * returns a future to the operation so that it can be executed in parallel to other requests.
442          */
443         virtual Model::DescribeCostCategoryDefinitionOutcomeCallable DescribeCostCategoryDefinitionCallable(const Model::DescribeCostCategoryDefinitionRequest& request) const;
444 
445         /**
446          * <p>Returns the name, ARN, rules, definition, and effective dates of a Cost
447          * Category that's defined in the account.</p> <p>You have the option to use
448          * <code>EffectiveOn</code> to return a Cost Category that is active on a specific
449          * date. If there is no <code>EffectiveOn</code> specified, you’ll see a Cost
450          * Category that is effective on the current date. If Cost Category is still
451          * effective, <code>EffectiveEnd</code> is omitted in the response. </p><p><h3>See
452          * Also:</h3>   <a
453          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition">AWS
454          * API Reference</a></p>
455          *
456          * Queues the request into a thread executor and triggers associated callback when operation has finished.
457          */
458         virtual void DescribeCostCategoryDefinitionAsync(const Model::DescribeCostCategoryDefinitionRequest& request, const DescribeCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
459 
460         /**
461          * <p>Retrieves all of the cost anomalies detected on your account during the time
462          * period that's specified by the <code>DateInterval</code> object. </p><p><h3>See
463          * Also:</h3>   <a
464          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalies">AWS API
465          * Reference</a></p>
466          */
467         virtual Model::GetAnomaliesOutcome GetAnomalies(const Model::GetAnomaliesRequest& request) const;
468 
469         /**
470          * <p>Retrieves all of the cost anomalies detected on your account during the time
471          * period that's specified by the <code>DateInterval</code> object. </p><p><h3>See
472          * Also:</h3>   <a
473          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalies">AWS API
474          * Reference</a></p>
475          *
476          * returns a future to the operation so that it can be executed in parallel to other requests.
477          */
478         virtual Model::GetAnomaliesOutcomeCallable GetAnomaliesCallable(const Model::GetAnomaliesRequest& request) const;
479 
480         /**
481          * <p>Retrieves all of the cost anomalies detected on your account during the time
482          * period that's specified by the <code>DateInterval</code> object. </p><p><h3>See
483          * Also:</h3>   <a
484          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalies">AWS API
485          * Reference</a></p>
486          *
487          * Queues the request into a thread executor and triggers associated callback when operation has finished.
488          */
489         virtual void GetAnomaliesAsync(const Model::GetAnomaliesRequest& request, const GetAnomaliesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
490 
491         /**
492          * <p>Retrieves the cost anomaly monitor definitions for your account. You can
493          * filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).
494          * </p><p><h3>See Also:</h3>   <a
495          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalyMonitors">AWS
496          * API Reference</a></p>
497          */
498         virtual Model::GetAnomalyMonitorsOutcome GetAnomalyMonitors(const Model::GetAnomalyMonitorsRequest& request) const;
499 
500         /**
501          * <p>Retrieves the cost anomaly monitor definitions for your account. You can
502          * filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).
503          * </p><p><h3>See Also:</h3>   <a
504          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalyMonitors">AWS
505          * API Reference</a></p>
506          *
507          * returns a future to the operation so that it can be executed in parallel to other requests.
508          */
509         virtual Model::GetAnomalyMonitorsOutcomeCallable GetAnomalyMonitorsCallable(const Model::GetAnomalyMonitorsRequest& request) const;
510 
511         /**
512          * <p>Retrieves the cost anomaly monitor definitions for your account. You can
513          * filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).
514          * </p><p><h3>See Also:</h3>   <a
515          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalyMonitors">AWS
516          * API Reference</a></p>
517          *
518          * Queues the request into a thread executor and triggers associated callback when operation has finished.
519          */
520         virtual void GetAnomalyMonitorsAsync(const Model::GetAnomalyMonitorsRequest& request, const GetAnomalyMonitorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
521 
522         /**
523          * <p>Retrieves the cost anomaly subscription objects for your account. You can
524          * filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).
525          * </p><p><h3>See Also:</h3>   <a
526          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalySubscriptions">AWS
527          * API Reference</a></p>
528          */
529         virtual Model::GetAnomalySubscriptionsOutcome GetAnomalySubscriptions(const Model::GetAnomalySubscriptionsRequest& request) const;
530 
531         /**
532          * <p>Retrieves the cost anomaly subscription objects for your account. You can
533          * filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).
534          * </p><p><h3>See Also:</h3>   <a
535          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalySubscriptions">AWS
536          * API Reference</a></p>
537          *
538          * returns a future to the operation so that it can be executed in parallel to other requests.
539          */
540         virtual Model::GetAnomalySubscriptionsOutcomeCallable GetAnomalySubscriptionsCallable(const Model::GetAnomalySubscriptionsRequest& request) const;
541 
542         /**
543          * <p>Retrieves the cost anomaly subscription objects for your account. You can
544          * filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).
545          * </p><p><h3>See Also:</h3>   <a
546          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalySubscriptions">AWS
547          * API Reference</a></p>
548          *
549          * Queues the request into a thread executor and triggers associated callback when operation has finished.
550          */
551         virtual void GetAnomalySubscriptionsAsync(const Model::GetAnomalySubscriptionsRequest& request, const GetAnomalySubscriptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
552 
553         /**
554          * <p>Retrieves cost and usage metrics for your account. You can specify which cost
555          * and usage-related metric that you want the request to return. For example, you
556          * can specify <code>BlendedCosts</code> or <code>UsageQuantity</code>. You can
557          * also filter and group your data by various dimensions, such as
558          * <code>SERVICE</code> or <code>AZ</code>, in a specific time range. For a
559          * complete list of valid dimensions, see the <a
560          * href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html">GetDimensionValues</a>
561          * operation. Management account in an organization in Organizations have access to
562          * all member accounts.</p> <p>For information about filter limitations, see <a
563          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-limits.html">Quotas
564          * and restrictions</a> in the <i>Billing and Cost Management User
565          * Guide</i>.</p><p><h3>See Also:</h3>   <a
566          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage">AWS
567          * API Reference</a></p>
568          */
569         virtual Model::GetCostAndUsageOutcome GetCostAndUsage(const Model::GetCostAndUsageRequest& request) const;
570 
571         /**
572          * <p>Retrieves cost and usage metrics for your account. You can specify which cost
573          * and usage-related metric that you want the request to return. For example, you
574          * can specify <code>BlendedCosts</code> or <code>UsageQuantity</code>. You can
575          * also filter and group your data by various dimensions, such as
576          * <code>SERVICE</code> or <code>AZ</code>, in a specific time range. For a
577          * complete list of valid dimensions, see the <a
578          * href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html">GetDimensionValues</a>
579          * operation. Management account in an organization in Organizations have access to
580          * all member accounts.</p> <p>For information about filter limitations, see <a
581          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-limits.html">Quotas
582          * and restrictions</a> in the <i>Billing and Cost Management User
583          * Guide</i>.</p><p><h3>See Also:</h3>   <a
584          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage">AWS
585          * API Reference</a></p>
586          *
587          * returns a future to the operation so that it can be executed in parallel to other requests.
588          */
589         virtual Model::GetCostAndUsageOutcomeCallable GetCostAndUsageCallable(const Model::GetCostAndUsageRequest& request) const;
590 
591         /**
592          * <p>Retrieves cost and usage metrics for your account. You can specify which cost
593          * and usage-related metric that you want the request to return. For example, you
594          * can specify <code>BlendedCosts</code> or <code>UsageQuantity</code>. You can
595          * also filter and group your data by various dimensions, such as
596          * <code>SERVICE</code> or <code>AZ</code>, in a specific time range. For a
597          * complete list of valid dimensions, see the <a
598          * href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html">GetDimensionValues</a>
599          * operation. Management account in an organization in Organizations have access to
600          * all member accounts.</p> <p>For information about filter limitations, see <a
601          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-limits.html">Quotas
602          * and restrictions</a> in the <i>Billing and Cost Management User
603          * Guide</i>.</p><p><h3>See Also:</h3>   <a
604          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage">AWS
605          * API Reference</a></p>
606          *
607          * Queues the request into a thread executor and triggers associated callback when operation has finished.
608          */
609         virtual void GetCostAndUsageAsync(const Model::GetCostAndUsageRequest& request, const GetCostAndUsageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
610 
611         /**
612          * <p>Retrieves cost and usage metrics with resources for your account. You can
613          * specify which cost and usage-related metric, such as <code>BlendedCosts</code>
614          * or <code>UsageQuantity</code>, that you want the request to return. You can also
615          * filter and group your data by various dimensions, such as <code>SERVICE</code>
616          * or <code>AZ</code>, in a specific time range. For a complete list of valid
617          * dimensions, see the <a
618          * href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html">GetDimensionValues</a>
619          * operation. Management account in an organization in Organizations have access to
620          * all member accounts. This API is currently available for the Amazon Elastic
621          * Compute Cloud – Compute service only.</p>  <p>This is an opt-in only
622          * feature. You can enable this feature from the Cost Explorer Settings page. For
623          * information on how to access the Settings page, see <a
624          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-access.html">Controlling
625          * Access for Cost Explorer</a> in the <i>Billing and Cost Management User
626          * Guide</i>.</p> <p><h3>See Also:</h3>   <a
627          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResources">AWS
628          * API Reference</a></p>
629          */
630         virtual Model::GetCostAndUsageWithResourcesOutcome GetCostAndUsageWithResources(const Model::GetCostAndUsageWithResourcesRequest& request) const;
631 
632         /**
633          * <p>Retrieves cost and usage metrics with resources for your account. You can
634          * specify which cost and usage-related metric, such as <code>BlendedCosts</code>
635          * or <code>UsageQuantity</code>, that you want the request to return. You can also
636          * filter and group your data by various dimensions, such as <code>SERVICE</code>
637          * or <code>AZ</code>, in a specific time range. For a complete list of valid
638          * dimensions, see the <a
639          * href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html">GetDimensionValues</a>
640          * operation. Management account in an organization in Organizations have access to
641          * all member accounts. This API is currently available for the Amazon Elastic
642          * Compute Cloud – Compute service only.</p>  <p>This is an opt-in only
643          * feature. You can enable this feature from the Cost Explorer Settings page. For
644          * information on how to access the Settings page, see <a
645          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-access.html">Controlling
646          * Access for Cost Explorer</a> in the <i>Billing and Cost Management User
647          * Guide</i>.</p> <p><h3>See Also:</h3>   <a
648          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResources">AWS
649          * API Reference</a></p>
650          *
651          * returns a future to the operation so that it can be executed in parallel to other requests.
652          */
653         virtual Model::GetCostAndUsageWithResourcesOutcomeCallable GetCostAndUsageWithResourcesCallable(const Model::GetCostAndUsageWithResourcesRequest& request) const;
654 
655         /**
656          * <p>Retrieves cost and usage metrics with resources for your account. You can
657          * specify which cost and usage-related metric, such as <code>BlendedCosts</code>
658          * or <code>UsageQuantity</code>, that you want the request to return. You can also
659          * filter and group your data by various dimensions, such as <code>SERVICE</code>
660          * or <code>AZ</code>, in a specific time range. For a complete list of valid
661          * dimensions, see the <a
662          * href="https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html">GetDimensionValues</a>
663          * operation. Management account in an organization in Organizations have access to
664          * all member accounts. This API is currently available for the Amazon Elastic
665          * Compute Cloud – Compute service only.</p>  <p>This is an opt-in only
666          * feature. You can enable this feature from the Cost Explorer Settings page. For
667          * information on how to access the Settings page, see <a
668          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-access.html">Controlling
669          * Access for Cost Explorer</a> in the <i>Billing and Cost Management User
670          * Guide</i>.</p> <p><h3>See Also:</h3>   <a
671          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResources">AWS
672          * API Reference</a></p>
673          *
674          * Queues the request into a thread executor and triggers associated callback when operation has finished.
675          */
676         virtual void GetCostAndUsageWithResourcesAsync(const Model::GetCostAndUsageWithResourcesRequest& request, const GetCostAndUsageWithResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
677 
678         /**
679          * <p>Retrieves an array of Cost Category names and values incurred cost.</p>
680          *  <p>If some Cost Category names and values are not associated with any
681          * cost, they will not be returned by this API.</p> <p><h3>See Also:</h3>
682          * <a
683          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategories">AWS
684          * API Reference</a></p>
685          */
686         virtual Model::GetCostCategoriesOutcome GetCostCategories(const Model::GetCostCategoriesRequest& request) const;
687 
688         /**
689          * <p>Retrieves an array of Cost Category names and values incurred cost.</p>
690          *  <p>If some Cost Category names and values are not associated with any
691          * cost, they will not be returned by this API.</p> <p><h3>See Also:</h3>
692          * <a
693          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategories">AWS
694          * API Reference</a></p>
695          *
696          * returns a future to the operation so that it can be executed in parallel to other requests.
697          */
698         virtual Model::GetCostCategoriesOutcomeCallable GetCostCategoriesCallable(const Model::GetCostCategoriesRequest& request) const;
699 
700         /**
701          * <p>Retrieves an array of Cost Category names and values incurred cost.</p>
702          *  <p>If some Cost Category names and values are not associated with any
703          * cost, they will not be returned by this API.</p> <p><h3>See Also:</h3>
704          * <a
705          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategories">AWS
706          * API Reference</a></p>
707          *
708          * Queues the request into a thread executor and triggers associated callback when operation has finished.
709          */
710         virtual void GetCostCategoriesAsync(const Model::GetCostCategoriesRequest& request, const GetCostCategoriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
711 
712         /**
713          * <p>Retrieves a forecast for how much Amazon Web Services predicts that you will
714          * spend over the forecast time period that you select, based on your past costs.
715          * </p><p><h3>See Also:</h3>   <a
716          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast">AWS
717          * API Reference</a></p>
718          */
719         virtual Model::GetCostForecastOutcome GetCostForecast(const Model::GetCostForecastRequest& request) const;
720 
721         /**
722          * <p>Retrieves a forecast for how much Amazon Web Services predicts that you will
723          * spend over the forecast time period that you select, based on your past costs.
724          * </p><p><h3>See Also:</h3>   <a
725          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast">AWS
726          * API Reference</a></p>
727          *
728          * returns a future to the operation so that it can be executed in parallel to other requests.
729          */
730         virtual Model::GetCostForecastOutcomeCallable GetCostForecastCallable(const Model::GetCostForecastRequest& request) const;
731 
732         /**
733          * <p>Retrieves a forecast for how much Amazon Web Services predicts that you will
734          * spend over the forecast time period that you select, based on your past costs.
735          * </p><p><h3>See Also:</h3>   <a
736          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast">AWS
737          * API Reference</a></p>
738          *
739          * Queues the request into a thread executor and triggers associated callback when operation has finished.
740          */
741         virtual void GetCostForecastAsync(const Model::GetCostForecastRequest& request, const GetCostForecastResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
742 
743         /**
744          * <p>Retrieves all available filter values for a specified filter over a period of
745          * time. You can search the dimension values for an arbitrary string.
746          * </p><p><h3>See Also:</h3>   <a
747          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues">AWS
748          * API Reference</a></p>
749          */
750         virtual Model::GetDimensionValuesOutcome GetDimensionValues(const Model::GetDimensionValuesRequest& request) const;
751 
752         /**
753          * <p>Retrieves all available filter values for a specified filter over a period of
754          * time. You can search the dimension values for an arbitrary string.
755          * </p><p><h3>See Also:</h3>   <a
756          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues">AWS
757          * API Reference</a></p>
758          *
759          * returns a future to the operation so that it can be executed in parallel to other requests.
760          */
761         virtual Model::GetDimensionValuesOutcomeCallable GetDimensionValuesCallable(const Model::GetDimensionValuesRequest& request) const;
762 
763         /**
764          * <p>Retrieves all available filter values for a specified filter over a period of
765          * time. You can search the dimension values for an arbitrary string.
766          * </p><p><h3>See Also:</h3>   <a
767          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues">AWS
768          * API Reference</a></p>
769          *
770          * Queues the request into a thread executor and triggers associated callback when operation has finished.
771          */
772         virtual void GetDimensionValuesAsync(const Model::GetDimensionValuesRequest& request, const GetDimensionValuesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
773 
774         /**
775          * <p>Retrieves the reservation coverage for your account. This enables you to see
776          * how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon
777          * Relational Database Service, or Amazon Redshift usage is covered by a
778          * reservation. An organization's management account can see the coverage of the
779          * associated member accounts. This supports dimensions, Cost Categories, and
780          * nested expressions. For any time period, you can filter data about reservation
781          * usage by the following dimensions:</p> <ul> <li> <p>AZ</p> </li> <li>
782          * <p>CACHE_ENGINE</p> </li> <li> <p>DATABASE_ENGINE</p> </li> <li>
783          * <p>DEPLOYMENT_OPTION</p> </li> <li> <p>INSTANCE_TYPE</p> </li> <li>
784          * <p>LINKED_ACCOUNT</p> </li> <li> <p>OPERATING_SYSTEM</p> </li> <li>
785          * <p>PLATFORM</p> </li> <li> <p>REGION</p> </li> <li> <p>SERVICE</p> </li> <li>
786          * <p>TAG</p> </li> <li> <p>TENANCY</p> </li> </ul> <p>To determine valid values
787          * for a dimension, use the <code>GetDimensionValues</code> operation.
788          * </p><p><h3>See Also:</h3>   <a
789          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage">AWS
790          * API Reference</a></p>
791          */
792         virtual Model::GetReservationCoverageOutcome GetReservationCoverage(const Model::GetReservationCoverageRequest& request) const;
793 
794         /**
795          * <p>Retrieves the reservation coverage for your account. This enables you to see
796          * how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon
797          * Relational Database Service, or Amazon Redshift usage is covered by a
798          * reservation. An organization's management account can see the coverage of the
799          * associated member accounts. This supports dimensions, Cost Categories, and
800          * nested expressions. For any time period, you can filter data about reservation
801          * usage by the following dimensions:</p> <ul> <li> <p>AZ</p> </li> <li>
802          * <p>CACHE_ENGINE</p> </li> <li> <p>DATABASE_ENGINE</p> </li> <li>
803          * <p>DEPLOYMENT_OPTION</p> </li> <li> <p>INSTANCE_TYPE</p> </li> <li>
804          * <p>LINKED_ACCOUNT</p> </li> <li> <p>OPERATING_SYSTEM</p> </li> <li>
805          * <p>PLATFORM</p> </li> <li> <p>REGION</p> </li> <li> <p>SERVICE</p> </li> <li>
806          * <p>TAG</p> </li> <li> <p>TENANCY</p> </li> </ul> <p>To determine valid values
807          * for a dimension, use the <code>GetDimensionValues</code> operation.
808          * </p><p><h3>See Also:</h3>   <a
809          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage">AWS
810          * API Reference</a></p>
811          *
812          * returns a future to the operation so that it can be executed in parallel to other requests.
813          */
814         virtual Model::GetReservationCoverageOutcomeCallable GetReservationCoverageCallable(const Model::GetReservationCoverageRequest& request) const;
815 
816         /**
817          * <p>Retrieves the reservation coverage for your account. This enables you to see
818          * how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon
819          * Relational Database Service, or Amazon Redshift usage is covered by a
820          * reservation. An organization's management account can see the coverage of the
821          * associated member accounts. This supports dimensions, Cost Categories, and
822          * nested expressions. For any time period, you can filter data about reservation
823          * usage by the following dimensions:</p> <ul> <li> <p>AZ</p> </li> <li>
824          * <p>CACHE_ENGINE</p> </li> <li> <p>DATABASE_ENGINE</p> </li> <li>
825          * <p>DEPLOYMENT_OPTION</p> </li> <li> <p>INSTANCE_TYPE</p> </li> <li>
826          * <p>LINKED_ACCOUNT</p> </li> <li> <p>OPERATING_SYSTEM</p> </li> <li>
827          * <p>PLATFORM</p> </li> <li> <p>REGION</p> </li> <li> <p>SERVICE</p> </li> <li>
828          * <p>TAG</p> </li> <li> <p>TENANCY</p> </li> </ul> <p>To determine valid values
829          * for a dimension, use the <code>GetDimensionValues</code> operation.
830          * </p><p><h3>See Also:</h3>   <a
831          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage">AWS
832          * API Reference</a></p>
833          *
834          * Queues the request into a thread executor and triggers associated callback when operation has finished.
835          */
836         virtual void GetReservationCoverageAsync(const Model::GetReservationCoverageRequest& request, const GetReservationCoverageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
837 
838         /**
839          * <p>Gets recommendations for which reservations to purchase. These
840          * recommendations could help you reduce your costs. Reservations provide a
841          * discounted hourly rate (up to 75%) compared to On-Demand pricing.</p> <p>Amazon
842          * Web Services generates your recommendations by identifying your On-Demand usage
843          * during a specific time period and collecting your usage into categories that are
844          * eligible for a reservation. After Amazon Web Services has these categories, it
845          * simulates every combination of reservations in each category of usage to
846          * identify the best number of each type of RI to purchase to maximize your
847          * estimated savings. </p> <p>For example, Amazon Web Services automatically
848          * aggregates your Amazon EC2 Linux, shared tenancy, and c4 family usage in the US
849          * West (Oregon) Region and recommends that you buy size-flexible regional
850          * reservations to apply to the c4 family usage. Amazon Web Services recommends the
851          * smallest size instance in an instance family. This makes it easier to purchase a
852          * size-flexible RI. Amazon Web Services also shows the equal number of normalized
853          * units so that you can purchase any instance size that you want. For this
854          * example, your RI recommendation would be for <code>c4.large</code> because that
855          * is the smallest size instance in the c4 instance family.</p><p><h3>See
856          * Also:</h3>   <a
857          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation">AWS
858          * API Reference</a></p>
859          */
860         virtual Model::GetReservationPurchaseRecommendationOutcome GetReservationPurchaseRecommendation(const Model::GetReservationPurchaseRecommendationRequest& request) const;
861 
862         /**
863          * <p>Gets recommendations for which reservations to purchase. These
864          * recommendations could help you reduce your costs. Reservations provide a
865          * discounted hourly rate (up to 75%) compared to On-Demand pricing.</p> <p>Amazon
866          * Web Services generates your recommendations by identifying your On-Demand usage
867          * during a specific time period and collecting your usage into categories that are
868          * eligible for a reservation. After Amazon Web Services has these categories, it
869          * simulates every combination of reservations in each category of usage to
870          * identify the best number of each type of RI to purchase to maximize your
871          * estimated savings. </p> <p>For example, Amazon Web Services automatically
872          * aggregates your Amazon EC2 Linux, shared tenancy, and c4 family usage in the US
873          * West (Oregon) Region and recommends that you buy size-flexible regional
874          * reservations to apply to the c4 family usage. Amazon Web Services recommends the
875          * smallest size instance in an instance family. This makes it easier to purchase a
876          * size-flexible RI. Amazon Web Services also shows the equal number of normalized
877          * units so that you can purchase any instance size that you want. For this
878          * example, your RI recommendation would be for <code>c4.large</code> because that
879          * is the smallest size instance in the c4 instance family.</p><p><h3>See
880          * Also:</h3>   <a
881          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation">AWS
882          * API Reference</a></p>
883          *
884          * returns a future to the operation so that it can be executed in parallel to other requests.
885          */
886         virtual Model::GetReservationPurchaseRecommendationOutcomeCallable GetReservationPurchaseRecommendationCallable(const Model::GetReservationPurchaseRecommendationRequest& request) const;
887 
888         /**
889          * <p>Gets recommendations for which reservations to purchase. These
890          * recommendations could help you reduce your costs. Reservations provide a
891          * discounted hourly rate (up to 75%) compared to On-Demand pricing.</p> <p>Amazon
892          * Web Services generates your recommendations by identifying your On-Demand usage
893          * during a specific time period and collecting your usage into categories that are
894          * eligible for a reservation. After Amazon Web Services has these categories, it
895          * simulates every combination of reservations in each category of usage to
896          * identify the best number of each type of RI to purchase to maximize your
897          * estimated savings. </p> <p>For example, Amazon Web Services automatically
898          * aggregates your Amazon EC2 Linux, shared tenancy, and c4 family usage in the US
899          * West (Oregon) Region and recommends that you buy size-flexible regional
900          * reservations to apply to the c4 family usage. Amazon Web Services recommends the
901          * smallest size instance in an instance family. This makes it easier to purchase a
902          * size-flexible RI. Amazon Web Services also shows the equal number of normalized
903          * units so that you can purchase any instance size that you want. For this
904          * example, your RI recommendation would be for <code>c4.large</code> because that
905          * is the smallest size instance in the c4 instance family.</p><p><h3>See
906          * Also:</h3>   <a
907          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation">AWS
908          * API Reference</a></p>
909          *
910          * Queues the request into a thread executor and triggers associated callback when operation has finished.
911          */
912         virtual void GetReservationPurchaseRecommendationAsync(const Model::GetReservationPurchaseRecommendationRequest& request, const GetReservationPurchaseRecommendationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
913 
914         /**
915          * <p>Retrieves the reservation utilization for your account. Management account in
916          * an organization have access to member accounts. You can filter data by
917          * dimensions in a time period. You can use <code>GetDimensionValues</code> to
918          * determine the possible dimension values. Currently, you can group only by
919          * <code>SUBSCRIPTION_ID</code>. </p><p><h3>See Also:</h3>   <a
920          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization">AWS
921          * API Reference</a></p>
922          */
923         virtual Model::GetReservationUtilizationOutcome GetReservationUtilization(const Model::GetReservationUtilizationRequest& request) const;
924 
925         /**
926          * <p>Retrieves the reservation utilization for your account. Management account in
927          * an organization have access to member accounts. You can filter data by
928          * dimensions in a time period. You can use <code>GetDimensionValues</code> to
929          * determine the possible dimension values. Currently, you can group only by
930          * <code>SUBSCRIPTION_ID</code>. </p><p><h3>See Also:</h3>   <a
931          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization">AWS
932          * API Reference</a></p>
933          *
934          * returns a future to the operation so that it can be executed in parallel to other requests.
935          */
936         virtual Model::GetReservationUtilizationOutcomeCallable GetReservationUtilizationCallable(const Model::GetReservationUtilizationRequest& request) const;
937 
938         /**
939          * <p>Retrieves the reservation utilization for your account. Management account in
940          * an organization have access to member accounts. You can filter data by
941          * dimensions in a time period. You can use <code>GetDimensionValues</code> to
942          * determine the possible dimension values. Currently, you can group only by
943          * <code>SUBSCRIPTION_ID</code>. </p><p><h3>See Also:</h3>   <a
944          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization">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 GetReservationUtilizationAsync(const Model::GetReservationUtilizationRequest& request, const GetReservationUtilizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
950 
951         /**
952          * <p>Creates recommendations that help you save cost by identifying idle and
953          * underutilized Amazon EC2 instances.</p> <p>Recommendations are generated to
954          * either downsize or terminate instances, along with providing savings detail and
955          * metrics. For details on calculation and function, see <a
956          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-rightsizing.html">Optimizing
957          * Your Cost with Rightsizing Recommendations</a> in the <i>Billing and Cost
958          * Management User Guide</i>.</p><p><h3>See Also:</h3>   <a
959          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation">AWS
960          * API Reference</a></p>
961          */
962         virtual Model::GetRightsizingRecommendationOutcome GetRightsizingRecommendation(const Model::GetRightsizingRecommendationRequest& request) const;
963 
964         /**
965          * <p>Creates recommendations that help you save cost by identifying idle and
966          * underutilized Amazon EC2 instances.</p> <p>Recommendations are generated to
967          * either downsize or terminate instances, along with providing savings detail and
968          * metrics. For details on calculation and function, see <a
969          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-rightsizing.html">Optimizing
970          * Your Cost with Rightsizing Recommendations</a> in the <i>Billing and Cost
971          * Management User Guide</i>.</p><p><h3>See Also:</h3>   <a
972          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation">AWS
973          * API Reference</a></p>
974          *
975          * returns a future to the operation so that it can be executed in parallel to other requests.
976          */
977         virtual Model::GetRightsizingRecommendationOutcomeCallable GetRightsizingRecommendationCallable(const Model::GetRightsizingRecommendationRequest& request) const;
978 
979         /**
980          * <p>Creates recommendations that help you save cost by identifying idle and
981          * underutilized Amazon EC2 instances.</p> <p>Recommendations are generated to
982          * either downsize or terminate instances, along with providing savings detail and
983          * metrics. For details on calculation and function, see <a
984          * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-rightsizing.html">Optimizing
985          * Your Cost with Rightsizing Recommendations</a> in the <i>Billing and Cost
986          * Management User Guide</i>.</p><p><h3>See Also:</h3>   <a
987          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation">AWS
988          * API Reference</a></p>
989          *
990          * Queues the request into a thread executor and triggers associated callback when operation has finished.
991          */
992         virtual void GetRightsizingRecommendationAsync(const Model::GetRightsizingRecommendationRequest& request, const GetRightsizingRecommendationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
993 
994         /**
995          * <p>Retrieves the Savings Plans covered for your account. This enables you to see
996          * how much of your cost is covered by a Savings Plan. An organization’s management
997          * account can see the coverage of the associated member accounts. This supports
998          * dimensions, Cost Categories, and nested expressions. For any time period, you
999          * can filter data for Savings Plans usage with the following dimensions:</p> <ul>
1000          * <li> <p> <code>LINKED_ACCOUNT</code> </p> </li> <li> <p> <code>REGION</code>
1001          * </p> </li> <li> <p> <code>SERVICE</code> </p> </li> <li> <p>
1002          * <code>INSTANCE_FAMILY</code> </p> </li> </ul> <p>To determine valid values for a
1003          * dimension, use the <code>GetDimensionValues</code> operation.</p><p><h3>See
1004          * Also:</h3>   <a
1005          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverage">AWS
1006          * API Reference</a></p>
1007          */
1008         virtual Model::GetSavingsPlansCoverageOutcome GetSavingsPlansCoverage(const Model::GetSavingsPlansCoverageRequest& request) const;
1009 
1010         /**
1011          * <p>Retrieves the Savings Plans covered for your account. This enables you to see
1012          * how much of your cost is covered by a Savings Plan. An organization’s management
1013          * account can see the coverage of the associated member accounts. This supports
1014          * dimensions, Cost Categories, and nested expressions. For any time period, you
1015          * can filter data for Savings Plans usage with the following dimensions:</p> <ul>
1016          * <li> <p> <code>LINKED_ACCOUNT</code> </p> </li> <li> <p> <code>REGION</code>
1017          * </p> </li> <li> <p> <code>SERVICE</code> </p> </li> <li> <p>
1018          * <code>INSTANCE_FAMILY</code> </p> </li> </ul> <p>To determine valid values for a
1019          * dimension, use the <code>GetDimensionValues</code> operation.</p><p><h3>See
1020          * Also:</h3>   <a
1021          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverage">AWS
1022          * API Reference</a></p>
1023          *
1024          * returns a future to the operation so that it can be executed in parallel to other requests.
1025          */
1026         virtual Model::GetSavingsPlansCoverageOutcomeCallable GetSavingsPlansCoverageCallable(const Model::GetSavingsPlansCoverageRequest& request) const;
1027 
1028         /**
1029          * <p>Retrieves the Savings Plans covered for your account. This enables you to see
1030          * how much of your cost is covered by a Savings Plan. An organization’s management
1031          * account can see the coverage of the associated member accounts. This supports
1032          * dimensions, Cost Categories, and nested expressions. For any time period, you
1033          * can filter data for Savings Plans usage with the following dimensions:</p> <ul>
1034          * <li> <p> <code>LINKED_ACCOUNT</code> </p> </li> <li> <p> <code>REGION</code>
1035          * </p> </li> <li> <p> <code>SERVICE</code> </p> </li> <li> <p>
1036          * <code>INSTANCE_FAMILY</code> </p> </li> </ul> <p>To determine valid values for a
1037          * dimension, use the <code>GetDimensionValues</code> operation.</p><p><h3>See
1038          * Also:</h3>   <a
1039          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverage">AWS
1040          * API Reference</a></p>
1041          *
1042          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1043          */
1044         virtual void GetSavingsPlansCoverageAsync(const Model::GetSavingsPlansCoverageRequest& request, const GetSavingsPlansCoverageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1045 
1046         /**
1047          * <p>Retrieves your request parameters, Savings Plan Recommendations Summary and
1048          * Details. </p><p><h3>See Also:</h3>   <a
1049          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendation">AWS
1050          * API Reference</a></p>
1051          */
1052         virtual Model::GetSavingsPlansPurchaseRecommendationOutcome GetSavingsPlansPurchaseRecommendation(const Model::GetSavingsPlansPurchaseRecommendationRequest& request) const;
1053 
1054         /**
1055          * <p>Retrieves your request parameters, Savings Plan Recommendations Summary and
1056          * Details. </p><p><h3>See Also:</h3>   <a
1057          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendation">AWS
1058          * API Reference</a></p>
1059          *
1060          * returns a future to the operation so that it can be executed in parallel to other requests.
1061          */
1062         virtual Model::GetSavingsPlansPurchaseRecommendationOutcomeCallable GetSavingsPlansPurchaseRecommendationCallable(const Model::GetSavingsPlansPurchaseRecommendationRequest& request) const;
1063 
1064         /**
1065          * <p>Retrieves your request parameters, Savings Plan Recommendations Summary and
1066          * Details. </p><p><h3>See Also:</h3>   <a
1067          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendation">AWS
1068          * API Reference</a></p>
1069          *
1070          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1071          */
1072         virtual void GetSavingsPlansPurchaseRecommendationAsync(const Model::GetSavingsPlansPurchaseRecommendationRequest& request, const GetSavingsPlansPurchaseRecommendationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1073 
1074         /**
1075          * <p>Retrieves the Savings Plans utilization for your account across date ranges
1076          * with daily or monthly granularity. Management account in an organization have
1077          * access to member accounts. You can use <code>GetDimensionValues</code> in
1078          * <code>SAVINGS_PLANS</code> to determine the possible dimension values.</p>
1079          *  <p>You cannot group by any dimension values for
1080          * <code>GetSavingsPlansUtilization</code>.</p> <p><h3>See Also:</h3>   <a
1081          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilization">AWS
1082          * API Reference</a></p>
1083          */
1084         virtual Model::GetSavingsPlansUtilizationOutcome GetSavingsPlansUtilization(const Model::GetSavingsPlansUtilizationRequest& request) const;
1085 
1086         /**
1087          * <p>Retrieves the Savings Plans utilization for your account across date ranges
1088          * with daily or monthly granularity. Management account in an organization have
1089          * access to member accounts. You can use <code>GetDimensionValues</code> in
1090          * <code>SAVINGS_PLANS</code> to determine the possible dimension values.</p>
1091          *  <p>You cannot group by any dimension values for
1092          * <code>GetSavingsPlansUtilization</code>.</p> <p><h3>See Also:</h3>   <a
1093          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilization">AWS
1094          * API Reference</a></p>
1095          *
1096          * returns a future to the operation so that it can be executed in parallel to other requests.
1097          */
1098         virtual Model::GetSavingsPlansUtilizationOutcomeCallable GetSavingsPlansUtilizationCallable(const Model::GetSavingsPlansUtilizationRequest& request) const;
1099 
1100         /**
1101          * <p>Retrieves the Savings Plans utilization for your account across date ranges
1102          * with daily or monthly granularity. Management account in an organization have
1103          * access to member accounts. You can use <code>GetDimensionValues</code> in
1104          * <code>SAVINGS_PLANS</code> to determine the possible dimension values.</p>
1105          *  <p>You cannot group by any dimension values for
1106          * <code>GetSavingsPlansUtilization</code>.</p> <p><h3>See Also:</h3>   <a
1107          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilization">AWS
1108          * API Reference</a></p>
1109          *
1110          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1111          */
1112         virtual void GetSavingsPlansUtilizationAsync(const Model::GetSavingsPlansUtilizationRequest& request, const GetSavingsPlansUtilizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1113 
1114         /**
1115          * <p>Retrieves attribute data along with aggregate utilization and savings data
1116          * for a given time period. This doesn't support granular or grouped data
1117          * (daily/monthly) in response. You can't retrieve data by dates in a single
1118          * response similar to <code>GetSavingsPlanUtilization</code>, but you have the
1119          * option to make multiple calls to <code>GetSavingsPlanUtilizationDetails</code>
1120          * by providing individual dates. You can use <code>GetDimensionValues</code> in
1121          * <code>SAVINGS_PLANS</code> to determine the possible dimension values.</p>
1122          *  <p> <code>GetSavingsPlanUtilizationDetails</code> internally groups data
1123          * by <code>SavingsPlansArn</code>.</p> <p><h3>See Also:</h3>   <a
1124          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetails">AWS
1125          * API Reference</a></p>
1126          */
1127         virtual Model::GetSavingsPlansUtilizationDetailsOutcome GetSavingsPlansUtilizationDetails(const Model::GetSavingsPlansUtilizationDetailsRequest& request) const;
1128 
1129         /**
1130          * <p>Retrieves attribute data along with aggregate utilization and savings data
1131          * for a given time period. This doesn't support granular or grouped data
1132          * (daily/monthly) in response. You can't retrieve data by dates in a single
1133          * response similar to <code>GetSavingsPlanUtilization</code>, but you have the
1134          * option to make multiple calls to <code>GetSavingsPlanUtilizationDetails</code>
1135          * by providing individual dates. You can use <code>GetDimensionValues</code> in
1136          * <code>SAVINGS_PLANS</code> to determine the possible dimension values.</p>
1137          *  <p> <code>GetSavingsPlanUtilizationDetails</code> internally groups data
1138          * by <code>SavingsPlansArn</code>.</p> <p><h3>See Also:</h3>   <a
1139          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetails">AWS
1140          * API Reference</a></p>
1141          *
1142          * returns a future to the operation so that it can be executed in parallel to other requests.
1143          */
1144         virtual Model::GetSavingsPlansUtilizationDetailsOutcomeCallable GetSavingsPlansUtilizationDetailsCallable(const Model::GetSavingsPlansUtilizationDetailsRequest& request) const;
1145 
1146         /**
1147          * <p>Retrieves attribute data along with aggregate utilization and savings data
1148          * for a given time period. This doesn't support granular or grouped data
1149          * (daily/monthly) in response. You can't retrieve data by dates in a single
1150          * response similar to <code>GetSavingsPlanUtilization</code>, but you have the
1151          * option to make multiple calls to <code>GetSavingsPlanUtilizationDetails</code>
1152          * by providing individual dates. You can use <code>GetDimensionValues</code> in
1153          * <code>SAVINGS_PLANS</code> to determine the possible dimension values.</p>
1154          *  <p> <code>GetSavingsPlanUtilizationDetails</code> internally groups data
1155          * by <code>SavingsPlansArn</code>.</p> <p><h3>See Also:</h3>   <a
1156          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetails">AWS
1157          * API Reference</a></p>
1158          *
1159          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1160          */
1161         virtual void GetSavingsPlansUtilizationDetailsAsync(const Model::GetSavingsPlansUtilizationDetailsRequest& request, const GetSavingsPlansUtilizationDetailsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1162 
1163         /**
1164          * <p>Queries for available tag keys and tag values for a specified period. You can
1165          * search the tag values for an arbitrary string. </p><p><h3>See Also:</h3>   <a
1166          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags">AWS API
1167          * Reference</a></p>
1168          */
1169         virtual Model::GetTagsOutcome GetTags(const Model::GetTagsRequest& request) const;
1170 
1171         /**
1172          * <p>Queries for available tag keys and tag values for a specified period. You can
1173          * search the tag values for an arbitrary string. </p><p><h3>See Also:</h3>   <a
1174          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags">AWS API
1175          * Reference</a></p>
1176          *
1177          * returns a future to the operation so that it can be executed in parallel to other requests.
1178          */
1179         virtual Model::GetTagsOutcomeCallable GetTagsCallable(const Model::GetTagsRequest& request) const;
1180 
1181         /**
1182          * <p>Queries for available tag keys and tag values for a specified period. You can
1183          * search the tag values for an arbitrary string. </p><p><h3>See Also:</h3>   <a
1184          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags">AWS API
1185          * Reference</a></p>
1186          *
1187          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1188          */
1189         virtual void GetTagsAsync(const Model::GetTagsRequest& request, const GetTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1190 
1191         /**
1192          * <p>Retrieves a forecast for how much Amazon Web Services predicts that you will
1193          * use over the forecast time period that you select, based on your past usage.
1194          * </p><p><h3>See Also:</h3>   <a
1195          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast">AWS
1196          * API Reference</a></p>
1197          */
1198         virtual Model::GetUsageForecastOutcome GetUsageForecast(const Model::GetUsageForecastRequest& request) const;
1199 
1200         /**
1201          * <p>Retrieves a forecast for how much Amazon Web Services predicts that you will
1202          * use over the forecast time period that you select, based on your past usage.
1203          * </p><p><h3>See Also:</h3>   <a
1204          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast">AWS
1205          * API Reference</a></p>
1206          *
1207          * returns a future to the operation so that it can be executed in parallel to other requests.
1208          */
1209         virtual Model::GetUsageForecastOutcomeCallable GetUsageForecastCallable(const Model::GetUsageForecastRequest& request) const;
1210 
1211         /**
1212          * <p>Retrieves a forecast for how much Amazon Web Services predicts that you will
1213          * use over the forecast time period that you select, based on your past usage.
1214          * </p><p><h3>See Also:</h3>   <a
1215          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast">AWS
1216          * API Reference</a></p>
1217          *
1218          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1219          */
1220         virtual void GetUsageForecastAsync(const Model::GetUsageForecastRequest& request, const GetUsageForecastResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1221 
1222         /**
1223          * <p>Returns the name, ARN, <code>NumberOfRules</code> and effective dates of all
1224          * Cost Categories defined in the account. You have the option to use
1225          * <code>EffectiveOn</code> to return a list of Cost Categories that were active on
1226          * a specific date. If there is no <code>EffectiveOn</code> specified, you’ll see
1227          * Cost Categories that are effective on the current date. If Cost Category is
1228          * still effective, <code>EffectiveEnd</code> is omitted in the response.
1229          * <code>ListCostCategoryDefinitions</code> supports pagination. The request can
1230          * have a <code>MaxResults</code> range up to 100.</p><p><h3>See Also:</h3>   <a
1231          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions">AWS
1232          * API Reference</a></p>
1233          */
1234         virtual Model::ListCostCategoryDefinitionsOutcome ListCostCategoryDefinitions(const Model::ListCostCategoryDefinitionsRequest& request) const;
1235 
1236         /**
1237          * <p>Returns the name, ARN, <code>NumberOfRules</code> and effective dates of all
1238          * Cost Categories defined in the account. You have the option to use
1239          * <code>EffectiveOn</code> to return a list of Cost Categories that were active on
1240          * a specific date. If there is no <code>EffectiveOn</code> specified, you’ll see
1241          * Cost Categories that are effective on the current date. If Cost Category is
1242          * still effective, <code>EffectiveEnd</code> is omitted in the response.
1243          * <code>ListCostCategoryDefinitions</code> supports pagination. The request can
1244          * have a <code>MaxResults</code> range up to 100.</p><p><h3>See Also:</h3>   <a
1245          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions">AWS
1246          * API Reference</a></p>
1247          *
1248          * returns a future to the operation so that it can be executed in parallel to other requests.
1249          */
1250         virtual Model::ListCostCategoryDefinitionsOutcomeCallable ListCostCategoryDefinitionsCallable(const Model::ListCostCategoryDefinitionsRequest& request) const;
1251 
1252         /**
1253          * <p>Returns the name, ARN, <code>NumberOfRules</code> and effective dates of all
1254          * Cost Categories defined in the account. You have the option to use
1255          * <code>EffectiveOn</code> to return a list of Cost Categories that were active on
1256          * a specific date. If there is no <code>EffectiveOn</code> specified, you’ll see
1257          * Cost Categories that are effective on the current date. If Cost Category is
1258          * still effective, <code>EffectiveEnd</code> is omitted in the response.
1259          * <code>ListCostCategoryDefinitions</code> supports pagination. The request can
1260          * have a <code>MaxResults</code> range up to 100.</p><p><h3>See Also:</h3>   <a
1261          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions">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 ListCostCategoryDefinitionsAsync(const Model::ListCostCategoryDefinitionsRequest& request, const ListCostCategoryDefinitionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1267 
1268         /**
1269          * <p>Modifies the feedback property of a given cost anomaly. </p><p><h3>See
1270          * Also:</h3>   <a
1271          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ProvideAnomalyFeedback">AWS
1272          * API Reference</a></p>
1273          */
1274         virtual Model::ProvideAnomalyFeedbackOutcome ProvideAnomalyFeedback(const Model::ProvideAnomalyFeedbackRequest& request) const;
1275 
1276         /**
1277          * <p>Modifies the feedback property of a given cost anomaly. </p><p><h3>See
1278          * Also:</h3>   <a
1279          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ProvideAnomalyFeedback">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::ProvideAnomalyFeedbackOutcomeCallable ProvideAnomalyFeedbackCallable(const Model::ProvideAnomalyFeedbackRequest& request) const;
1285 
1286         /**
1287          * <p>Modifies the feedback property of a given cost anomaly. </p><p><h3>See
1288          * Also:</h3>   <a
1289          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ProvideAnomalyFeedback">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 ProvideAnomalyFeedbackAsync(const Model::ProvideAnomalyFeedbackRequest& request, const ProvideAnomalyFeedbackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1295 
1296         /**
1297          * <p>Updates an existing cost anomaly monitor. The changes made are applied going
1298          * forward, and doesn'tt change anomalies detected in the past. </p><p><h3>See
1299          * Also:</h3>   <a
1300          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalyMonitor">AWS
1301          * API Reference</a></p>
1302          */
1303         virtual Model::UpdateAnomalyMonitorOutcome UpdateAnomalyMonitor(const Model::UpdateAnomalyMonitorRequest& request) const;
1304 
1305         /**
1306          * <p>Updates an existing cost anomaly monitor. The changes made are applied going
1307          * forward, and doesn'tt change anomalies detected in the past. </p><p><h3>See
1308          * Also:</h3>   <a
1309          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalyMonitor">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::UpdateAnomalyMonitorOutcomeCallable UpdateAnomalyMonitorCallable(const Model::UpdateAnomalyMonitorRequest& request) const;
1315 
1316         /**
1317          * <p>Updates an existing cost anomaly monitor. The changes made are applied going
1318          * forward, and doesn'tt change anomalies detected in the past. </p><p><h3>See
1319          * Also:</h3>   <a
1320          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalyMonitor">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 UpdateAnomalyMonitorAsync(const Model::UpdateAnomalyMonitorRequest& request, const UpdateAnomalyMonitorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1326 
1327         /**
1328          * <p>Updates an existing cost anomaly monitor subscription. </p><p><h3>See
1329          * Also:</h3>   <a
1330          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscription">AWS
1331          * API Reference</a></p>
1332          */
1333         virtual Model::UpdateAnomalySubscriptionOutcome UpdateAnomalySubscription(const Model::UpdateAnomalySubscriptionRequest& request) const;
1334 
1335         /**
1336          * <p>Updates an existing cost anomaly monitor subscription. </p><p><h3>See
1337          * Also:</h3>   <a
1338          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscription">AWS
1339          * API Reference</a></p>
1340          *
1341          * returns a future to the operation so that it can be executed in parallel to other requests.
1342          */
1343         virtual Model::UpdateAnomalySubscriptionOutcomeCallable UpdateAnomalySubscriptionCallable(const Model::UpdateAnomalySubscriptionRequest& request) const;
1344 
1345         /**
1346          * <p>Updates an existing cost anomaly monitor subscription. </p><p><h3>See
1347          * Also:</h3>   <a
1348          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscription">AWS
1349          * API Reference</a></p>
1350          *
1351          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1352          */
1353         virtual void UpdateAnomalySubscriptionAsync(const Model::UpdateAnomalySubscriptionRequest& request, const UpdateAnomalySubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1354 
1355         /**
1356          * <p>Updates an existing Cost Category. Changes made to the Cost Category rules
1357          * will be used to categorize the current month’s expenses and future expenses.
1358          * This won’t change categorization for the previous months.</p><p><h3>See
1359          * Also:</h3>   <a
1360          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition">AWS
1361          * API Reference</a></p>
1362          */
1363         virtual Model::UpdateCostCategoryDefinitionOutcome UpdateCostCategoryDefinition(const Model::UpdateCostCategoryDefinitionRequest& request) const;
1364 
1365         /**
1366          * <p>Updates an existing Cost Category. Changes made to the Cost Category rules
1367          * will be used to categorize the current month’s expenses and future expenses.
1368          * This won’t change categorization for the previous months.</p><p><h3>See
1369          * Also:</h3>   <a
1370          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition">AWS
1371          * API Reference</a></p>
1372          *
1373          * returns a future to the operation so that it can be executed in parallel to other requests.
1374          */
1375         virtual Model::UpdateCostCategoryDefinitionOutcomeCallable UpdateCostCategoryDefinitionCallable(const Model::UpdateCostCategoryDefinitionRequest& request) const;
1376 
1377         /**
1378          * <p>Updates an existing Cost Category. Changes made to the Cost Category rules
1379          * will be used to categorize the current month’s expenses and future expenses.
1380          * This won’t change categorization for the previous months.</p><p><h3>See
1381          * Also:</h3>   <a
1382          * href="http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition">AWS
1383          * API Reference</a></p>
1384          *
1385          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1386          */
1387         virtual void UpdateCostCategoryDefinitionAsync(const Model::UpdateCostCategoryDefinitionRequest& request, const UpdateCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1388 
1389 
1390       void OverrideEndpoint(const Aws::String& endpoint);
1391     private:
1392       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
1393         void CreateAnomalyMonitorAsyncHelper(const Model::CreateAnomalyMonitorRequest& request, const CreateAnomalyMonitorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1394         void CreateAnomalySubscriptionAsyncHelper(const Model::CreateAnomalySubscriptionRequest& request, const CreateAnomalySubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1395         void CreateCostCategoryDefinitionAsyncHelper(const Model::CreateCostCategoryDefinitionRequest& request, const CreateCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1396         void DeleteAnomalyMonitorAsyncHelper(const Model::DeleteAnomalyMonitorRequest& request, const DeleteAnomalyMonitorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1397         void DeleteAnomalySubscriptionAsyncHelper(const Model::DeleteAnomalySubscriptionRequest& request, const DeleteAnomalySubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1398         void DeleteCostCategoryDefinitionAsyncHelper(const Model::DeleteCostCategoryDefinitionRequest& request, const DeleteCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1399         void DescribeCostCategoryDefinitionAsyncHelper(const Model::DescribeCostCategoryDefinitionRequest& request, const DescribeCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1400         void GetAnomaliesAsyncHelper(const Model::GetAnomaliesRequest& request, const GetAnomaliesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1401         void GetAnomalyMonitorsAsyncHelper(const Model::GetAnomalyMonitorsRequest& request, const GetAnomalyMonitorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1402         void GetAnomalySubscriptionsAsyncHelper(const Model::GetAnomalySubscriptionsRequest& request, const GetAnomalySubscriptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1403         void GetCostAndUsageAsyncHelper(const Model::GetCostAndUsageRequest& request, const GetCostAndUsageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1404         void GetCostAndUsageWithResourcesAsyncHelper(const Model::GetCostAndUsageWithResourcesRequest& request, const GetCostAndUsageWithResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1405         void GetCostCategoriesAsyncHelper(const Model::GetCostCategoriesRequest& request, const GetCostCategoriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1406         void GetCostForecastAsyncHelper(const Model::GetCostForecastRequest& request, const GetCostForecastResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1407         void GetDimensionValuesAsyncHelper(const Model::GetDimensionValuesRequest& request, const GetDimensionValuesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1408         void GetReservationCoverageAsyncHelper(const Model::GetReservationCoverageRequest& request, const GetReservationCoverageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1409         void GetReservationPurchaseRecommendationAsyncHelper(const Model::GetReservationPurchaseRecommendationRequest& request, const GetReservationPurchaseRecommendationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1410         void GetReservationUtilizationAsyncHelper(const Model::GetReservationUtilizationRequest& request, const GetReservationUtilizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1411         void GetRightsizingRecommendationAsyncHelper(const Model::GetRightsizingRecommendationRequest& request, const GetRightsizingRecommendationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1412         void GetSavingsPlansCoverageAsyncHelper(const Model::GetSavingsPlansCoverageRequest& request, const GetSavingsPlansCoverageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1413         void GetSavingsPlansPurchaseRecommendationAsyncHelper(const Model::GetSavingsPlansPurchaseRecommendationRequest& request, const GetSavingsPlansPurchaseRecommendationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1414         void GetSavingsPlansUtilizationAsyncHelper(const Model::GetSavingsPlansUtilizationRequest& request, const GetSavingsPlansUtilizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1415         void GetSavingsPlansUtilizationDetailsAsyncHelper(const Model::GetSavingsPlansUtilizationDetailsRequest& request, const GetSavingsPlansUtilizationDetailsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1416         void GetTagsAsyncHelper(const Model::GetTagsRequest& request, const GetTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1417         void GetUsageForecastAsyncHelper(const Model::GetUsageForecastRequest& request, const GetUsageForecastResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1418         void ListCostCategoryDefinitionsAsyncHelper(const Model::ListCostCategoryDefinitionsRequest& request, const ListCostCategoryDefinitionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1419         void ProvideAnomalyFeedbackAsyncHelper(const Model::ProvideAnomalyFeedbackRequest& request, const ProvideAnomalyFeedbackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1420         void UpdateAnomalyMonitorAsyncHelper(const Model::UpdateAnomalyMonitorRequest& request, const UpdateAnomalyMonitorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1421         void UpdateAnomalySubscriptionAsyncHelper(const Model::UpdateAnomalySubscriptionRequest& request, const UpdateAnomalySubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1422         void UpdateCostCategoryDefinitionAsyncHelper(const Model::UpdateCostCategoryDefinitionRequest& request, const UpdateCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1423 
1424       Aws::String m_uri;
1425       Aws::String m_configScheme;
1426       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
1427   };
1428 
1429 } // namespace CostExplorer
1430 } // namespace Aws
1431