AWS SDK for C++  0.12.9
AWS SDK for C++
WorkSpacesClient.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
35 #include <future>
36 #include <functional>
37 
38 namespace Aws
39 {
40 
41 namespace Http
42 {
43  class HttpClient;
44  class HttpClientFactory;
45 } // namespace Http
46 
47 namespace Utils
48 {
49  template< typename R, typename E> class Outcome;
50 
51 namespace Threading
52 {
53  class Executor;
54 } // namespace Threading
55 
56 namespace Json
57 {
58  class JsonValue;
59 } // namespace Json
60 } // namespace Utils
61 
62 namespace Auth
63 {
64  class AWSCredentials;
65  class AWSCredentialsProvider;
66 } // namespace Auth
67 
68 namespace Client
69 {
70  class RetryStrategy;
71 } // namespace Client
72 
73 namespace WorkSpaces
74 {
75 
76 namespace Model
77 {
78  class CreateTagsRequest;
79  class CreateWorkspacesRequest;
80  class DeleteTagsRequest;
81  class DescribeTagsRequest;
82  class DescribeWorkspaceBundlesRequest;
83  class DescribeWorkspaceDirectoriesRequest;
84  class DescribeWorkspacesRequest;
85  class RebootWorkspacesRequest;
86  class RebuildWorkspacesRequest;
88 
99 
100  typedef std::future<CreateTagsOutcome> CreateTagsOutcomeCallable;
101  typedef std::future<CreateWorkspacesOutcome> CreateWorkspacesOutcomeCallable;
102  typedef std::future<DeleteTagsOutcome> DeleteTagsOutcomeCallable;
103  typedef std::future<DescribeTagsOutcome> DescribeTagsOutcomeCallable;
104  typedef std::future<DescribeWorkspaceBundlesOutcome> DescribeWorkspaceBundlesOutcomeCallable;
105  typedef std::future<DescribeWorkspaceDirectoriesOutcome> DescribeWorkspaceDirectoriesOutcomeCallable;
106  typedef std::future<DescribeWorkspacesOutcome> DescribeWorkspacesOutcomeCallable;
107  typedef std::future<RebootWorkspacesOutcome> RebootWorkspacesOutcomeCallable;
108  typedef std::future<RebuildWorkspacesOutcome> RebuildWorkspacesOutcomeCallable;
109  typedef std::future<TerminateWorkspacesOutcome> TerminateWorkspacesOutcomeCallable;
110 } // namespace Model
111 
113 
114  typedef std::function<void(const WorkSpacesClient*, const Model::CreateTagsRequest&, const Model::CreateTagsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTagsResponseReceivedHandler;
115  typedef std::function<void(const WorkSpacesClient*, const Model::CreateWorkspacesRequest&, const Model::CreateWorkspacesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateWorkspacesResponseReceivedHandler;
116  typedef std::function<void(const WorkSpacesClient*, const Model::DeleteTagsRequest&, const Model::DeleteTagsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTagsResponseReceivedHandler;
117  typedef std::function<void(const WorkSpacesClient*, const Model::DescribeTagsRequest&, const Model::DescribeTagsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTagsResponseReceivedHandler;
118  typedef std::function<void(const WorkSpacesClient*, const Model::DescribeWorkspaceBundlesRequest&, const Model::DescribeWorkspaceBundlesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeWorkspaceBundlesResponseReceivedHandler;
119  typedef std::function<void(const WorkSpacesClient*, const Model::DescribeWorkspaceDirectoriesRequest&, const Model::DescribeWorkspaceDirectoriesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeWorkspaceDirectoriesResponseReceivedHandler;
120  typedef std::function<void(const WorkSpacesClient*, const Model::DescribeWorkspacesRequest&, const Model::DescribeWorkspacesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeWorkspacesResponseReceivedHandler;
121  typedef std::function<void(const WorkSpacesClient*, const Model::RebootWorkspacesRequest&, const Model::RebootWorkspacesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RebootWorkspacesResponseReceivedHandler;
122  typedef std::function<void(const WorkSpacesClient*, const Model::RebuildWorkspacesRequest&, const Model::RebuildWorkspacesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RebuildWorkspacesResponseReceivedHandler;
123  typedef std::function<void(const WorkSpacesClient*, const Model::TerminateWorkspacesRequest&, const Model::TerminateWorkspacesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TerminateWorkspacesResponseReceivedHandler;
124 
131  {
132  public:
134 
140 
145  WorkSpacesClient(const Auth::AWSCredentials& credentials, const Client::ClientConfiguration& clientConfiguration = Client::ClientConfiguration());
146 
151  WorkSpacesClient(const std::shared_ptr<Auth::AWSCredentialsProvider>& credentialsProvider,
152  const Client::ClientConfiguration& clientConfiguration = Client::ClientConfiguration());
153 
154  virtual ~WorkSpacesClient();
155 
159  virtual Model::CreateTagsOutcome CreateTags(const Model::CreateTagsRequest& request) const;
160 
166  virtual Model::CreateTagsOutcomeCallable CreateTagsCallable(const Model::CreateTagsRequest& request) const;
167 
173  virtual void CreateTagsAsync(const Model::CreateTagsRequest& request, const CreateTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
174 
179  virtual Model::CreateWorkspacesOutcome CreateWorkspaces(const Model::CreateWorkspacesRequest& request) const;
180 
187  virtual Model::CreateWorkspacesOutcomeCallable CreateWorkspacesCallable(const Model::CreateWorkspacesRequest& request) const;
188 
195  virtual void CreateWorkspacesAsync(const Model::CreateWorkspacesRequest& request, const CreateWorkspacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
196 
200  virtual Model::DeleteTagsOutcome DeleteTags(const Model::DeleteTagsRequest& request) const;
201 
207  virtual Model::DeleteTagsOutcomeCallable DeleteTagsCallable(const Model::DeleteTagsRequest& request) const;
208 
214  virtual void DeleteTagsAsync(const Model::DeleteTagsRequest& request, const DeleteTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
215 
219  virtual Model::DescribeTagsOutcome DescribeTags(const Model::DescribeTagsRequest& request) const;
220 
226  virtual Model::DescribeTagsOutcomeCallable DescribeTagsCallable(const Model::DescribeTagsRequest& request) const;
227 
233  virtual void DescribeTagsAsync(const Model::DescribeTagsRequest& request, const DescribeTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
234 
244  virtual Model::DescribeWorkspaceBundlesOutcome DescribeWorkspaceBundles(const Model::DescribeWorkspaceBundlesRequest& request) const;
245 
257  virtual Model::DescribeWorkspaceBundlesOutcomeCallable DescribeWorkspaceBundlesCallable(const Model::DescribeWorkspaceBundlesRequest& request) const;
258 
270  virtual void DescribeWorkspaceBundlesAsync(const Model::DescribeWorkspaceBundlesRequest& request, const DescribeWorkspaceBundlesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
271 
280  virtual Model::DescribeWorkspaceDirectoriesOutcome DescribeWorkspaceDirectories(const Model::DescribeWorkspaceDirectoriesRequest& request) const;
281 
292  virtual Model::DescribeWorkspaceDirectoriesOutcomeCallable DescribeWorkspaceDirectoriesCallable(const Model::DescribeWorkspaceDirectoriesRequest& request) const;
293 
304  virtual void DescribeWorkspaceDirectoriesAsync(const Model::DescribeWorkspaceDirectoriesRequest& request, const DescribeWorkspaceDirectoriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
305 
315  virtual Model::DescribeWorkspacesOutcome DescribeWorkspaces(const Model::DescribeWorkspacesRequest& request) const;
316 
328  virtual Model::DescribeWorkspacesOutcomeCallable DescribeWorkspacesCallable(const Model::DescribeWorkspacesRequest& request) const;
329 
341  virtual void DescribeWorkspacesAsync(const Model::DescribeWorkspacesRequest& request, const DescribeWorkspacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
342 
349  virtual Model::RebootWorkspacesOutcome RebootWorkspaces(const Model::RebootWorkspacesRequest& request) const;
350 
359  virtual Model::RebootWorkspacesOutcomeCallable RebootWorkspacesCallable(const Model::RebootWorkspacesRequest& request) const;
360 
369  virtual void RebootWorkspacesAsync(const Model::RebootWorkspacesRequest& request, const RebootWorkspacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
370 
386  virtual Model::RebuildWorkspacesOutcome RebuildWorkspaces(const Model::RebuildWorkspacesRequest& request) const;
387 
405  virtual Model::RebuildWorkspacesOutcomeCallable RebuildWorkspacesCallable(const Model::RebuildWorkspacesRequest& request) const;
406 
424  virtual void RebuildWorkspacesAsync(const Model::RebuildWorkspacesRequest& request, const RebuildWorkspacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
425 
435  virtual Model::TerminateWorkspacesOutcome TerminateWorkspaces(const Model::TerminateWorkspacesRequest& request) const;
436 
448  virtual Model::TerminateWorkspacesOutcomeCallable TerminateWorkspacesCallable(const Model::TerminateWorkspacesRequest& request) const;
449 
461  virtual void TerminateWorkspacesAsync(const Model::TerminateWorkspacesRequest& request, const TerminateWorkspacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
462 
463 
464  private:
465  void init(const Client::ClientConfiguration& clientConfiguration);
466 
468  void CreateTagsAsyncHelper(const Model::CreateTagsRequest& request, const CreateTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
469  void CreateWorkspacesAsyncHelper(const Model::CreateWorkspacesRequest& request, const CreateWorkspacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
470  void DeleteTagsAsyncHelper(const Model::DeleteTagsRequest& request, const DeleteTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
471  void DescribeTagsAsyncHelper(const Model::DescribeTagsRequest& request, const DescribeTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
472  void DescribeWorkspaceBundlesAsyncHelper(const Model::DescribeWorkspaceBundlesRequest& request, const DescribeWorkspaceBundlesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
473  void DescribeWorkspaceDirectoriesAsyncHelper(const Model::DescribeWorkspaceDirectoriesRequest& request, const DescribeWorkspaceDirectoriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
474  void DescribeWorkspacesAsyncHelper(const Model::DescribeWorkspacesRequest& request, const DescribeWorkspacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
475  void RebootWorkspacesAsyncHelper(const Model::RebootWorkspacesRequest& request, const RebootWorkspacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
476  void RebuildWorkspacesAsyncHelper(const Model::RebuildWorkspacesRequest& request, const RebuildWorkspacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
477  void TerminateWorkspacesAsyncHelper(const Model::TerminateWorkspacesRequest& request, const TerminateWorkspacesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
478 
479  Aws::String m_uri;
480  std::shared_ptr<Utils::Threading::Executor> m_executor;
481  };
482 
483 } // namespace WorkSpaces
484 } // namespace Aws
Aws::Utils::Outcome< TerminateWorkspacesResult, Aws::Client::AWSError< WorkSpacesErrors > > TerminateWorkspacesOutcome
Aws::Utils::Outcome< CreateTagsResult, Aws::Client::AWSError< WorkSpacesErrors > > CreateTagsOutcome
std::function< void(const WorkSpacesClient *, const Model::DeleteTagsRequest &, const Model::DeleteTagsOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DeleteTagsResponseReceivedHandler
Aws::Utils::Outcome< DescribeTagsResult, Aws::Client::AWSError< WorkSpacesErrors > > DescribeTagsOutcome
std::future< DescribeWorkspacesOutcome > DescribeWorkspacesOutcomeCallable
std::function< void(const WorkSpacesClient *, const Model::RebuildWorkspacesRequest &, const Model::RebuildWorkspacesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > RebuildWorkspacesResponseReceivedHandler
std::future< DescribeWorkspaceDirectoriesOutcome > DescribeWorkspaceDirectoriesOutcomeCallable
std::function< void(const WorkSpacesClient *, const Model::CreateWorkspacesRequest &, const Model::CreateWorkspacesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > CreateWorkspacesResponseReceivedHandler
std::function< void(const WorkSpacesClient *, const Model::DescribeTagsRequest &, const Model::DescribeTagsOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DescribeTagsResponseReceivedHandler
Aws::Utils::Outcome< DescribeWorkspaceBundlesResult, Aws::Client::AWSError< WorkSpacesErrors > > DescribeWorkspaceBundlesOutcome
std::function< void(const WorkSpacesClient *, const Model::RebootWorkspacesRequest &, const Model::RebootWorkspacesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > RebootWorkspacesResponseReceivedHandler
Aws::Utils::Outcome< DescribeWorkspaceDirectoriesResult, Aws::Client::AWSError< WorkSpacesErrors > > DescribeWorkspaceDirectoriesOutcome
std::function< void(const WorkSpacesClient *, const Model::DescribeWorkspaceBundlesRequest &, const Model::DescribeWorkspaceBundlesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DescribeWorkspaceBundlesResponseReceivedHandler
std::function< void(const WorkSpacesClient *, const Model::DescribeWorkspacesRequest &, const Model::DescribeWorkspacesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DescribeWorkspacesResponseReceivedHandler
std::future< TerminateWorkspacesOutcome > TerminateWorkspacesOutcomeCallable
Aws::Utils::Outcome< RebootWorkspacesResult, Aws::Client::AWSError< WorkSpacesErrors > > RebootWorkspacesOutcome
std::future< RebuildWorkspacesOutcome > RebuildWorkspacesOutcomeCallable
std::function< void(const WorkSpacesClient *, const Model::TerminateWorkspacesRequest &, const Model::TerminateWorkspacesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > TerminateWorkspacesResponseReceivedHandler
std::future< DescribeTagsOutcome > DescribeTagsOutcomeCallable
Aws::Utils::Outcome< RebuildWorkspacesResult, Aws::Client::AWSError< WorkSpacesErrors > > RebuildWorkspacesOutcome
std::future< RebootWorkspacesOutcome > RebootWorkspacesOutcomeCallable
std::future< DeleteTagsOutcome > DeleteTagsOutcomeCallable
Aws::Utils::Outcome< CreateWorkspacesResult, Aws::Client::AWSError< WorkSpacesErrors > > CreateWorkspacesOutcome
std::future< CreateTagsOutcome > CreateTagsOutcomeCallable
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition: AWSString.h:97
std::future< CreateWorkspacesOutcome > CreateWorkspacesOutcomeCallable
std::future< DescribeWorkspaceBundlesOutcome > DescribeWorkspaceBundlesOutcomeCallable
std::function< void(const WorkSpacesClient *, const Model::CreateTagsRequest &, const Model::CreateTagsOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > CreateTagsResponseReceivedHandler
std::function< void(const WorkSpacesClient *, const Model::DescribeWorkspaceDirectoriesRequest &, const Model::DescribeWorkspaceDirectoriesOutcome &, const std::shared_ptr< const Aws::Client::AsyncCallerContext > &) > DescribeWorkspaceDirectoriesResponseReceivedHandler
Aws::Utils::Outcome< DeleteTagsResult, Aws::Client::AWSError< WorkSpacesErrors > > DeleteTagsOutcome
Aws::Client::AWSJsonClient BASECLASS
Aws::Utils::Outcome< DescribeWorkspacesResult, Aws::Client::AWSError< WorkSpacesErrors > > DescribeWorkspacesOutcome
JSON (JavaScript Object Notation).
#define AWS_WORKSPACES_API