AWS SDK for C++  0.12.9
AWS SDK for C++
ApplicationAutoScalingClient.h
Go to the documentation of this file.
1 /*
2 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License").
5 * You may not use this file except in compliance with the License.
6 * A copy of the License is located at
7 *
8 * http://aws.amazon.com/apache2.0
9 *
10 * or in the "license" file accompanying this file. This file is distributed
11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12 * express or implied. See the License for the specific language governing
13 * permissions and limitations under the License.
14 */
15 #pragma once
32 #include <future>
33 #include <functional>
34 
35 namespace Aws
36 {
37 
38 namespace Http
39 {
40  class HttpClient;
41  class HttpClientFactory;
42 } // namespace Http
43 
44 namespace Utils
45 {
46  template< typename R, typename E> class Outcome;
47 
48 namespace Threading
49 {
50  class Executor;
51 } // namespace Threading
52 
53 namespace Json
54 {
55  class JsonValue;
56 } // namespace Json
57 } // namespace Utils
58 
59 namespace Auth
60 {
61  class AWSCredentials;
62  class AWSCredentialsProvider;
63 } // namespace Auth
64 
65 namespace Client
66 {
67  class RetryStrategy;
68 } // namespace Client
69 
70 namespace ApplicationAutoScaling
71 {
72 
73 namespace Model
74 {
82 
90 
91  typedef std::future<DeleteScalingPolicyOutcome> DeleteScalingPolicyOutcomeCallable;
92  typedef std::future<DeregisterScalableTargetOutcome> DeregisterScalableTargetOutcomeCallable;
93  typedef std::future<DescribeScalableTargetsOutcome> DescribeScalableTargetsOutcomeCallable;
94  typedef std::future<DescribeScalingActivitiesOutcome> DescribeScalingActivitiesOutcomeCallable;
95  typedef std::future<DescribeScalingPoliciesOutcome> DescribeScalingPoliciesOutcomeCallable;
96  typedef std::future<PutScalingPolicyOutcome> PutScalingPolicyOutcomeCallable;
97  typedef std::future<RegisterScalableTargetOutcome> RegisterScalableTargetOutcomeCallable;
98 } // namespace Model
99 
101 
102  typedef std::function<void(const ApplicationAutoScalingClient*, const Model::DeleteScalingPolicyRequest&, const Model::DeleteScalingPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteScalingPolicyResponseReceivedHandler;
103  typedef std::function<void(const ApplicationAutoScalingClient*, const Model::DeregisterScalableTargetRequest&, const Model::DeregisterScalableTargetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeregisterScalableTargetResponseReceivedHandler;
104  typedef std::function<void(const ApplicationAutoScalingClient*, const Model::DescribeScalableTargetsRequest&, const Model::DescribeScalableTargetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeScalableTargetsResponseReceivedHandler;
105  typedef std::function<void(const ApplicationAutoScalingClient*, const Model::DescribeScalingActivitiesRequest&, const Model::DescribeScalingActivitiesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeScalingActivitiesResponseReceivedHandler;
106  typedef std::function<void(const ApplicationAutoScalingClient*, const Model::DescribeScalingPoliciesRequest&, const Model::DescribeScalingPoliciesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeScalingPoliciesResponseReceivedHandler;
107  typedef std::function<void(const ApplicationAutoScalingClient*, const Model::PutScalingPolicyRequest&, const Model::PutScalingPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutScalingPolicyResponseReceivedHandler;
108  typedef std::function<void(const ApplicationAutoScalingClient*, const Model::RegisterScalableTargetRequest&, const Model::RegisterScalableTargetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RegisterScalableTargetResponseReceivedHandler;
109 
125  {
126  public:
128 
134 
140 
145  ApplicationAutoScalingClient(const std::shared_ptr<Auth::AWSCredentialsProvider>& credentialsProvider,
146  const Client::ClientConfiguration& clientConfiguration = Client::ClientConfiguration());
147 
148  virtual ~ApplicationAutoScalingClient();
149 
158  virtual Model::DeleteScalingPolicyOutcome DeleteScalingPolicy(const Model::DeleteScalingPolicyRequest& request) const;
159 
170  virtual Model::DeleteScalingPolicyOutcomeCallable DeleteScalingPolicyCallable(const Model::DeleteScalingPolicyRequest& request) const;
171 
182  virtual void DeleteScalingPolicyAsync(const Model::DeleteScalingPolicyRequest& request, const DeleteScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
183 
191  virtual Model::DeregisterScalableTargetOutcome DeregisterScalableTarget(const Model::DeregisterScalableTargetRequest& request) const;
192 
202  virtual Model::DeregisterScalableTargetOutcomeCallable DeregisterScalableTargetCallable(const Model::DeregisterScalableTargetRequest& request) const;
203 
213  virtual void DeregisterScalableTargetAsync(const Model::DeregisterScalableTargetRequest& request, const DeregisterScalableTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
214 
223  virtual Model::DescribeScalableTargetsOutcome DescribeScalableTargets(const Model::DescribeScalableTargetsRequest& request) const;
224 
235  virtual Model::DescribeScalableTargetsOutcomeCallable DescribeScalableTargetsCallable(const Model::DescribeScalableTargetsRequest& request) const;
236 
247  virtual void DescribeScalableTargetsAsync(const Model::DescribeScalableTargetsRequest& request, const DescribeScalableTargetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
248 
258  virtual Model::DescribeScalingActivitiesOutcome DescribeScalingActivities(const Model::DescribeScalingActivitiesRequest& request) const;
259 
271  virtual Model::DescribeScalingActivitiesOutcomeCallable DescribeScalingActivitiesCallable(const Model::DescribeScalingActivitiesRequest& request) const;
272 
284  virtual void DescribeScalingActivitiesAsync(const Model::DescribeScalingActivitiesRequest& request, const DescribeScalingActivitiesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
285 
294  virtual Model::DescribeScalingPoliciesOutcome DescribeScalingPolicies(const Model::DescribeScalingPoliciesRequest& request) const;
295 
306  virtual Model::DescribeScalingPoliciesOutcomeCallable DescribeScalingPoliciesCallable(const Model::DescribeScalingPoliciesRequest& request) const;
307 
318  virtual void DescribeScalingPoliciesAsync(const Model::DescribeScalingPoliciesRequest& request, const DescribeScalingPoliciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
319 
333  virtual Model::PutScalingPolicyOutcome PutScalingPolicy(const Model::PutScalingPolicyRequest& request) const;
334 
350  virtual Model::PutScalingPolicyOutcomeCallable PutScalingPolicyCallable(const Model::PutScalingPolicyRequest& request) const;
351 
367  virtual void PutScalingPolicyAsync(const Model::PutScalingPolicyRequest& request, const PutScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
368 
381  virtual Model::RegisterScalableTargetOutcome RegisterScalableTarget(const Model::RegisterScalableTargetRequest& request) const;
382 
397  virtual Model::RegisterScalableTargetOutcomeCallable RegisterScalableTargetCallable(const Model::RegisterScalableTargetRequest& request) const;
398 
413  virtual void RegisterScalableTargetAsync(const Model::RegisterScalableTargetRequest& request, const RegisterScalableTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
414 
415 
416  private:
417  void init(const Client::ClientConfiguration& clientConfiguration);
418 
420  void DeleteScalingPolicyAsyncHelper(const Model::DeleteScalingPolicyRequest& request, const DeleteScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
421  void DeregisterScalableTargetAsyncHelper(const Model::DeregisterScalableTargetRequest& request, const DeregisterScalableTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
422  void DescribeScalableTargetsAsyncHelper(const Model::DescribeScalableTargetsRequest& request, const DescribeScalableTargetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
423  void DescribeScalingActivitiesAsyncHelper(const Model::DescribeScalingActivitiesRequest& request, const DescribeScalingActivitiesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
424  void DescribeScalingPoliciesAsyncHelper(const Model::DescribeScalingPoliciesRequest& request, const DescribeScalingPoliciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
425  void PutScalingPolicyAsyncHelper(const Model::PutScalingPolicyRequest& request, const PutScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
426  void RegisterScalableTargetAsyncHelper(const Model::RegisterScalableTargetRequest& request, const RegisterScalableTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
427 
428  Aws::String m_uri;
429  std::shared_ptr<Utils::Threading::Executor> m_executor;
430  };
431 
432 } // namespace ApplicationAutoScaling
433 } // namespace Aws
Aws::Utils::Outcome< DescribeScalableTargetsResult, Aws::Client::AWSError< ApplicationAutoScalingErrors > > DescribeScalableTargetsOutcome
#define AWS_APPLICATIONAUTOSCALING_API
Aws::Utils::Outcome< PutScalingPolicyResult, Aws::Client::AWSError< ApplicationAutoScalingErrors > > PutScalingPolicyOutcome
std::future< DescribeScalingActivitiesOutcome > DescribeScalingActivitiesOutcomeCallable
Aws::Utils::Outcome< DeleteScalingPolicyResult, Aws::Client::AWSError< ApplicationAutoScalingErrors > > DeleteScalingPolicyOutcome
Aws::Utils::Outcome< DeregisterScalableTargetResult, Aws::Client::AWSError< ApplicationAutoScalingErrors > > DeregisterScalableTargetOutcome
std::function< void(const ApplicationAutoScalingClient *, const Model::DescribeScalableTargetsRequest &, const Model::DescribeScalableTargetsOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DescribeScalableTargetsResponseReceivedHandler
std::future< DeregisterScalableTargetOutcome > DeregisterScalableTargetOutcomeCallable
std::future< DescribeScalingPoliciesOutcome > DescribeScalingPoliciesOutcomeCallable
std::function< void(const ApplicationAutoScalingClient *, const Model::DeleteScalingPolicyRequest &, const Model::DeleteScalingPolicyOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DeleteScalingPolicyResponseReceivedHandler
std::function< void(const ApplicationAutoScalingClient *, const Model::DescribeScalingActivitiesRequest &, const Model::DescribeScalingActivitiesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DescribeScalingActivitiesResponseReceivedHandler
std::future< RegisterScalableTargetOutcome > RegisterScalableTargetOutcomeCallable
Aws::Utils::Outcome< DescribeScalingPoliciesResult, Aws::Client::AWSError< ApplicationAutoScalingErrors > > DescribeScalingPoliciesOutcome
std::function< void(const ApplicationAutoScalingClient *, const Model::DescribeScalingPoliciesRequest &, const Model::DescribeScalingPoliciesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DescribeScalingPoliciesResponseReceivedHandler
std::function< void(const ApplicationAutoScalingClient *, const Model::DeregisterScalableTargetRequest &, const Model::DeregisterScalableTargetOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DeregisterScalableTargetResponseReceivedHandler
std::future< DeleteScalingPolicyOutcome > DeleteScalingPolicyOutcomeCallable
std::future< PutScalingPolicyOutcome > PutScalingPolicyOutcomeCallable
std::function< void(const ApplicationAutoScalingClient *, const Model::RegisterScalableTargetRequest &, const Model::RegisterScalableTargetOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > RegisterScalableTargetResponseReceivedHandler
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition: AWSString.h:97
std::future< DescribeScalableTargetsOutcome > DescribeScalableTargetsOutcomeCallable
Aws::Utils::Outcome< DescribeScalingActivitiesResult, Aws::Client::AWSError< ApplicationAutoScalingErrors > > DescribeScalingActivitiesOutcome
Aws::Utils::Outcome< RegisterScalableTargetResult, Aws::Client::AWSError< ApplicationAutoScalingErrors > > RegisterScalableTargetOutcome
JSON (JavaScript Object Notation).
std::function< void(const ApplicationAutoScalingClient *, const Model::PutScalingPolicyRequest &, const Model::PutScalingPolicyOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > PutScalingPolicyResponseReceivedHandler