AWS SDK for C++  0.14.3
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 
128  {
129  public:
131 
137 
143 
148  ApplicationAutoScalingClient(const std::shared_ptr<Auth::AWSCredentialsProvider>& credentialsProvider,
149  const Client::ClientConfiguration& clientConfiguration = Client::ClientConfiguration());
150 
151  virtual ~ApplicationAutoScalingClient();
152 
161  virtual Model::DeleteScalingPolicyOutcome DeleteScalingPolicy(const Model::DeleteScalingPolicyRequest& request) const;
162 
173  virtual Model::DeleteScalingPolicyOutcomeCallable DeleteScalingPolicyCallable(const Model::DeleteScalingPolicyRequest& request) const;
174 
185  virtual void DeleteScalingPolicyAsync(const Model::DeleteScalingPolicyRequest& request, const DeleteScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
186 
194  virtual Model::DeregisterScalableTargetOutcome DeregisterScalableTarget(const Model::DeregisterScalableTargetRequest& request) const;
195 
205  virtual Model::DeregisterScalableTargetOutcomeCallable DeregisterScalableTargetCallable(const Model::DeregisterScalableTargetRequest& request) const;
206 
216  virtual void DeregisterScalableTargetAsync(const Model::DeregisterScalableTargetRequest& request, const DeregisterScalableTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
217 
226  virtual Model::DescribeScalableTargetsOutcome DescribeScalableTargets(const Model::DescribeScalableTargetsRequest& request) const;
227 
238  virtual Model::DescribeScalableTargetsOutcomeCallable DescribeScalableTargetsCallable(const Model::DescribeScalableTargetsRequest& request) const;
239 
250  virtual void DescribeScalableTargetsAsync(const Model::DescribeScalableTargetsRequest& request, const DescribeScalableTargetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
251 
262  virtual Model::DescribeScalingActivitiesOutcome DescribeScalingActivities(const Model::DescribeScalingActivitiesRequest& request) const;
263 
276  virtual Model::DescribeScalingActivitiesOutcomeCallable DescribeScalingActivitiesCallable(const Model::DescribeScalingActivitiesRequest& request) const;
277 
290  virtual void DescribeScalingActivitiesAsync(const Model::DescribeScalingActivitiesRequest& request, const DescribeScalingActivitiesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
291 
300  virtual Model::DescribeScalingPoliciesOutcome DescribeScalingPolicies(const Model::DescribeScalingPoliciesRequest& request) const;
301 
312  virtual Model::DescribeScalingPoliciesOutcomeCallable DescribeScalingPoliciesCallable(const Model::DescribeScalingPoliciesRequest& request) const;
313 
324  virtual void DescribeScalingPoliciesAsync(const Model::DescribeScalingPoliciesRequest& request, const DescribeScalingPoliciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
325 
339  virtual Model::PutScalingPolicyOutcome PutScalingPolicy(const Model::PutScalingPolicyRequest& request) const;
340 
356  virtual Model::PutScalingPolicyOutcomeCallable PutScalingPolicyCallable(const Model::PutScalingPolicyRequest& request) const;
357 
373  virtual void PutScalingPolicyAsync(const Model::PutScalingPolicyRequest& request, const PutScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
374 
387  virtual Model::RegisterScalableTargetOutcome RegisterScalableTarget(const Model::RegisterScalableTargetRequest& request) const;
388 
403  virtual Model::RegisterScalableTargetOutcomeCallable RegisterScalableTargetCallable(const Model::RegisterScalableTargetRequest& request) const;
404 
419  virtual void RegisterScalableTargetAsync(const Model::RegisterScalableTargetRequest& request, const RegisterScalableTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
420 
421 
422  private:
423  void init(const Client::ClientConfiguration& clientConfiguration);
424 
426  void DeleteScalingPolicyAsyncHelper(const Model::DeleteScalingPolicyRequest& request, const DeleteScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
427  void DeregisterScalableTargetAsyncHelper(const Model::DeregisterScalableTargetRequest& request, const DeregisterScalableTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
428  void DescribeScalableTargetsAsyncHelper(const Model::DescribeScalableTargetsRequest& request, const DescribeScalableTargetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
429  void DescribeScalingActivitiesAsyncHelper(const Model::DescribeScalingActivitiesRequest& request, const DescribeScalingActivitiesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
430  void DescribeScalingPoliciesAsyncHelper(const Model::DescribeScalingPoliciesRequest& request, const DescribeScalingPoliciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
431  void PutScalingPolicyAsyncHelper(const Model::PutScalingPolicyRequest& request, const PutScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
432  void RegisterScalableTargetAsyncHelper(const Model::RegisterScalableTargetRequest& request, const RegisterScalableTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
433 
434  Aws::String m_uri;
435  std::shared_ptr<Utils::Threading::Executor> m_executor;
436  };
437 
438 } // namespace ApplicationAutoScaling
439 } // 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