1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/core/utils/Outcome.h>
7 #include <aws/core/auth/AWSAuthSigner.h>
8 #include <aws/core/client/CoreErrors.h>
9 #include <aws/core/client/RetryStrategy.h>
10 #include <aws/core/http/HttpClient.h>
11 #include <aws/core/http/HttpResponse.h>
12 #include <aws/core/http/HttpClientFactory.h>
13 #include <aws/core/auth/AWSCredentialsProviderChain.h>
14 #include <aws/core/utils/json/JsonSerializer.h>
15 #include <aws/core/utils/memory/stl/AWSStringStream.h>
16 #include <aws/core/utils/threading/Executor.h>
17 #include <aws/core/utils/DNS.h>
18 #include <aws/core/utils/logging/LogMacros.h>
19 
20 #include <aws/mq/MQClient.h>
21 #include <aws/mq/MQEndpoint.h>
22 #include <aws/mq/MQErrorMarshaller.h>
23 #include <aws/mq/model/CreateBrokerRequest.h>
24 #include <aws/mq/model/CreateConfigurationRequest.h>
25 #include <aws/mq/model/CreateTagsRequest.h>
26 #include <aws/mq/model/CreateUserRequest.h>
27 #include <aws/mq/model/DeleteBrokerRequest.h>
28 #include <aws/mq/model/DeleteTagsRequest.h>
29 #include <aws/mq/model/DeleteUserRequest.h>
30 #include <aws/mq/model/DescribeBrokerRequest.h>
31 #include <aws/mq/model/DescribeBrokerEngineTypesRequest.h>
32 #include <aws/mq/model/DescribeBrokerInstanceOptionsRequest.h>
33 #include <aws/mq/model/DescribeConfigurationRequest.h>
34 #include <aws/mq/model/DescribeConfigurationRevisionRequest.h>
35 #include <aws/mq/model/DescribeUserRequest.h>
36 #include <aws/mq/model/ListBrokersRequest.h>
37 #include <aws/mq/model/ListConfigurationRevisionsRequest.h>
38 #include <aws/mq/model/ListConfigurationsRequest.h>
39 #include <aws/mq/model/ListTagsRequest.h>
40 #include <aws/mq/model/ListUsersRequest.h>
41 #include <aws/mq/model/RebootBrokerRequest.h>
42 #include <aws/mq/model/UpdateBrokerRequest.h>
43 #include <aws/mq/model/UpdateConfigurationRequest.h>
44 #include <aws/mq/model/UpdateUserRequest.h>
45 
46 using namespace Aws;
47 using namespace Aws::Auth;
48 using namespace Aws::Client;
49 using namespace Aws::MQ;
50 using namespace Aws::MQ::Model;
51 using namespace Aws::Http;
52 using namespace Aws::Utils::Json;
53 
54 static const char* SERVICE_NAME = "mq";
55 static const char* ALLOCATION_TAG = "MQClient";
56 
57 
MQClient(const Client::ClientConfiguration & clientConfiguration)58 MQClient::MQClient(const Client::ClientConfiguration& clientConfiguration) :
59   BASECLASS(clientConfiguration,
60     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG),
61         SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
62     Aws::MakeShared<MQErrorMarshaller>(ALLOCATION_TAG)),
63     m_executor(clientConfiguration.executor)
64 {
65   init(clientConfiguration);
66 }
67 
MQClient(const AWSCredentials & credentials,const Client::ClientConfiguration & clientConfiguration)68 MQClient::MQClient(const AWSCredentials& credentials, const Client::ClientConfiguration& clientConfiguration) :
69   BASECLASS(clientConfiguration,
70     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials),
71          SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
72     Aws::MakeShared<MQErrorMarshaller>(ALLOCATION_TAG)),
73     m_executor(clientConfiguration.executor)
74 {
75   init(clientConfiguration);
76 }
77 
MQClient(const std::shared_ptr<AWSCredentialsProvider> & credentialsProvider,const Client::ClientConfiguration & clientConfiguration)78 MQClient::MQClient(const std::shared_ptr<AWSCredentialsProvider>& credentialsProvider,
79   const Client::ClientConfiguration& clientConfiguration) :
80   BASECLASS(clientConfiguration,
81     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, credentialsProvider,
82          SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
83     Aws::MakeShared<MQErrorMarshaller>(ALLOCATION_TAG)),
84     m_executor(clientConfiguration.executor)
85 {
86   init(clientConfiguration);
87 }
88 
~MQClient()89 MQClient::~MQClient()
90 {
91 }
92 
init(const Client::ClientConfiguration & config)93 void MQClient::init(const Client::ClientConfiguration& config)
94 {
95   SetServiceClientName("mq");
96   m_configScheme = SchemeMapper::ToString(config.scheme);
97   if (config.endpointOverride.empty())
98   {
99       m_uri = m_configScheme + "://" + MQEndpoint::ForRegion(config.region, config.useDualStack);
100   }
101   else
102   {
103       OverrideEndpoint(config.endpointOverride);
104   }
105 }
106 
OverrideEndpoint(const Aws::String & endpoint)107 void MQClient::OverrideEndpoint(const Aws::String& endpoint)
108 {
109   if (endpoint.compare(0, 7, "http://") == 0 || endpoint.compare(0, 8, "https://") == 0)
110   {
111       m_uri = endpoint;
112   }
113   else
114   {
115       m_uri = m_configScheme + "://" + endpoint;
116   }
117 }
118 
CreateBroker(const CreateBrokerRequest & request) const119 CreateBrokerOutcome MQClient::CreateBroker(const CreateBrokerRequest& request) const
120 {
121   Aws::Http::URI uri = m_uri;
122   uri.AddPathSegments("/v1/brokers");
123   return CreateBrokerOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
124 }
125 
CreateBrokerCallable(const CreateBrokerRequest & request) const126 CreateBrokerOutcomeCallable MQClient::CreateBrokerCallable(const CreateBrokerRequest& request) const
127 {
128   auto task = Aws::MakeShared< std::packaged_task< CreateBrokerOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateBroker(request); } );
129   auto packagedFunction = [task]() { (*task)(); };
130   m_executor->Submit(packagedFunction);
131   return task->get_future();
132 }
133 
CreateBrokerAsync(const CreateBrokerRequest & request,const CreateBrokerResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const134 void MQClient::CreateBrokerAsync(const CreateBrokerRequest& request, const CreateBrokerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
135 {
136   m_executor->Submit( [this, request, handler, context](){ this->CreateBrokerAsyncHelper( request, handler, context ); } );
137 }
138 
CreateBrokerAsyncHelper(const CreateBrokerRequest & request,const CreateBrokerResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const139 void MQClient::CreateBrokerAsyncHelper(const CreateBrokerRequest& request, const CreateBrokerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
140 {
141   handler(this, request, CreateBroker(request), context);
142 }
143 
CreateConfiguration(const CreateConfigurationRequest & request) const144 CreateConfigurationOutcome MQClient::CreateConfiguration(const CreateConfigurationRequest& request) const
145 {
146   Aws::Http::URI uri = m_uri;
147   uri.AddPathSegments("/v1/configurations");
148   return CreateConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
149 }
150 
CreateConfigurationCallable(const CreateConfigurationRequest & request) const151 CreateConfigurationOutcomeCallable MQClient::CreateConfigurationCallable(const CreateConfigurationRequest& request) const
152 {
153   auto task = Aws::MakeShared< std::packaged_task< CreateConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateConfiguration(request); } );
154   auto packagedFunction = [task]() { (*task)(); };
155   m_executor->Submit(packagedFunction);
156   return task->get_future();
157 }
158 
CreateConfigurationAsync(const CreateConfigurationRequest & request,const CreateConfigurationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const159 void MQClient::CreateConfigurationAsync(const CreateConfigurationRequest& request, const CreateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
160 {
161   m_executor->Submit( [this, request, handler, context](){ this->CreateConfigurationAsyncHelper( request, handler, context ); } );
162 }
163 
CreateConfigurationAsyncHelper(const CreateConfigurationRequest & request,const CreateConfigurationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const164 void MQClient::CreateConfigurationAsyncHelper(const CreateConfigurationRequest& request, const CreateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
165 {
166   handler(this, request, CreateConfiguration(request), context);
167 }
168 
CreateTags(const CreateTagsRequest & request) const169 CreateTagsOutcome MQClient::CreateTags(const CreateTagsRequest& request) const
170 {
171   if (!request.ResourceArnHasBeenSet())
172   {
173     AWS_LOGSTREAM_ERROR("CreateTags", "Required field: ResourceArn, is not set");
174     return CreateTagsOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
175   }
176   Aws::Http::URI uri = m_uri;
177   uri.AddPathSegments("/v1/tags/");
178   uri.AddPathSegment(request.GetResourceArn());
179   return CreateTagsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
180 }
181 
CreateTagsCallable(const CreateTagsRequest & request) const182 CreateTagsOutcomeCallable MQClient::CreateTagsCallable(const CreateTagsRequest& request) const
183 {
184   auto task = Aws::MakeShared< std::packaged_task< CreateTagsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateTags(request); } );
185   auto packagedFunction = [task]() { (*task)(); };
186   m_executor->Submit(packagedFunction);
187   return task->get_future();
188 }
189 
CreateTagsAsync(const CreateTagsRequest & request,const CreateTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const190 void MQClient::CreateTagsAsync(const CreateTagsRequest& request, const CreateTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
191 {
192   m_executor->Submit( [this, request, handler, context](){ this->CreateTagsAsyncHelper( request, handler, context ); } );
193 }
194 
CreateTagsAsyncHelper(const CreateTagsRequest & request,const CreateTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const195 void MQClient::CreateTagsAsyncHelper(const CreateTagsRequest& request, const CreateTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
196 {
197   handler(this, request, CreateTags(request), context);
198 }
199 
CreateUser(const CreateUserRequest & request) const200 CreateUserOutcome MQClient::CreateUser(const CreateUserRequest& request) const
201 {
202   if (!request.BrokerIdHasBeenSet())
203   {
204     AWS_LOGSTREAM_ERROR("CreateUser", "Required field: BrokerId, is not set");
205     return CreateUserOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [BrokerId]", false));
206   }
207   if (!request.UsernameHasBeenSet())
208   {
209     AWS_LOGSTREAM_ERROR("CreateUser", "Required field: Username, is not set");
210     return CreateUserOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Username]", false));
211   }
212   Aws::Http::URI uri = m_uri;
213   uri.AddPathSegments("/v1/brokers/");
214   uri.AddPathSegment(request.GetBrokerId());
215   uri.AddPathSegments("/users/");
216   uri.AddPathSegment(request.GetUsername());
217   return CreateUserOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
218 }
219 
CreateUserCallable(const CreateUserRequest & request) const220 CreateUserOutcomeCallable MQClient::CreateUserCallable(const CreateUserRequest& request) const
221 {
222   auto task = Aws::MakeShared< std::packaged_task< CreateUserOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateUser(request); } );
223   auto packagedFunction = [task]() { (*task)(); };
224   m_executor->Submit(packagedFunction);
225   return task->get_future();
226 }
227 
CreateUserAsync(const CreateUserRequest & request,const CreateUserResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const228 void MQClient::CreateUserAsync(const CreateUserRequest& request, const CreateUserResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
229 {
230   m_executor->Submit( [this, request, handler, context](){ this->CreateUserAsyncHelper( request, handler, context ); } );
231 }
232 
CreateUserAsyncHelper(const CreateUserRequest & request,const CreateUserResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const233 void MQClient::CreateUserAsyncHelper(const CreateUserRequest& request, const CreateUserResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
234 {
235   handler(this, request, CreateUser(request), context);
236 }
237 
DeleteBroker(const DeleteBrokerRequest & request) const238 DeleteBrokerOutcome MQClient::DeleteBroker(const DeleteBrokerRequest& request) const
239 {
240   if (!request.BrokerIdHasBeenSet())
241   {
242     AWS_LOGSTREAM_ERROR("DeleteBroker", "Required field: BrokerId, is not set");
243     return DeleteBrokerOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [BrokerId]", false));
244   }
245   Aws::Http::URI uri = m_uri;
246   uri.AddPathSegments("/v1/brokers/");
247   uri.AddPathSegment(request.GetBrokerId());
248   return DeleteBrokerOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
249 }
250 
DeleteBrokerCallable(const DeleteBrokerRequest & request) const251 DeleteBrokerOutcomeCallable MQClient::DeleteBrokerCallable(const DeleteBrokerRequest& request) const
252 {
253   auto task = Aws::MakeShared< std::packaged_task< DeleteBrokerOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteBroker(request); } );
254   auto packagedFunction = [task]() { (*task)(); };
255   m_executor->Submit(packagedFunction);
256   return task->get_future();
257 }
258 
DeleteBrokerAsync(const DeleteBrokerRequest & request,const DeleteBrokerResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const259 void MQClient::DeleteBrokerAsync(const DeleteBrokerRequest& request, const DeleteBrokerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
260 {
261   m_executor->Submit( [this, request, handler, context](){ this->DeleteBrokerAsyncHelper( request, handler, context ); } );
262 }
263 
DeleteBrokerAsyncHelper(const DeleteBrokerRequest & request,const DeleteBrokerResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const264 void MQClient::DeleteBrokerAsyncHelper(const DeleteBrokerRequest& request, const DeleteBrokerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
265 {
266   handler(this, request, DeleteBroker(request), context);
267 }
268 
DeleteTags(const DeleteTagsRequest & request) const269 DeleteTagsOutcome MQClient::DeleteTags(const DeleteTagsRequest& request) const
270 {
271   if (!request.ResourceArnHasBeenSet())
272   {
273     AWS_LOGSTREAM_ERROR("DeleteTags", "Required field: ResourceArn, is not set");
274     return DeleteTagsOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
275   }
276   if (!request.TagKeysHasBeenSet())
277   {
278     AWS_LOGSTREAM_ERROR("DeleteTags", "Required field: TagKeys, is not set");
279     return DeleteTagsOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [TagKeys]", false));
280   }
281   Aws::Http::URI uri = m_uri;
282   uri.AddPathSegments("/v1/tags/");
283   uri.AddPathSegment(request.GetResourceArn());
284   return DeleteTagsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
285 }
286 
DeleteTagsCallable(const DeleteTagsRequest & request) const287 DeleteTagsOutcomeCallable MQClient::DeleteTagsCallable(const DeleteTagsRequest& request) const
288 {
289   auto task = Aws::MakeShared< std::packaged_task< DeleteTagsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteTags(request); } );
290   auto packagedFunction = [task]() { (*task)(); };
291   m_executor->Submit(packagedFunction);
292   return task->get_future();
293 }
294 
DeleteTagsAsync(const DeleteTagsRequest & request,const DeleteTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const295 void MQClient::DeleteTagsAsync(const DeleteTagsRequest& request, const DeleteTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
296 {
297   m_executor->Submit( [this, request, handler, context](){ this->DeleteTagsAsyncHelper( request, handler, context ); } );
298 }
299 
DeleteTagsAsyncHelper(const DeleteTagsRequest & request,const DeleteTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const300 void MQClient::DeleteTagsAsyncHelper(const DeleteTagsRequest& request, const DeleteTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
301 {
302   handler(this, request, DeleteTags(request), context);
303 }
304 
DeleteUser(const DeleteUserRequest & request) const305 DeleteUserOutcome MQClient::DeleteUser(const DeleteUserRequest& request) const
306 {
307   if (!request.BrokerIdHasBeenSet())
308   {
309     AWS_LOGSTREAM_ERROR("DeleteUser", "Required field: BrokerId, is not set");
310     return DeleteUserOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [BrokerId]", false));
311   }
312   if (!request.UsernameHasBeenSet())
313   {
314     AWS_LOGSTREAM_ERROR("DeleteUser", "Required field: Username, is not set");
315     return DeleteUserOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Username]", false));
316   }
317   Aws::Http::URI uri = m_uri;
318   uri.AddPathSegments("/v1/brokers/");
319   uri.AddPathSegment(request.GetBrokerId());
320   uri.AddPathSegments("/users/");
321   uri.AddPathSegment(request.GetUsername());
322   return DeleteUserOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
323 }
324 
DeleteUserCallable(const DeleteUserRequest & request) const325 DeleteUserOutcomeCallable MQClient::DeleteUserCallable(const DeleteUserRequest& request) const
326 {
327   auto task = Aws::MakeShared< std::packaged_task< DeleteUserOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteUser(request); } );
328   auto packagedFunction = [task]() { (*task)(); };
329   m_executor->Submit(packagedFunction);
330   return task->get_future();
331 }
332 
DeleteUserAsync(const DeleteUserRequest & request,const DeleteUserResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const333 void MQClient::DeleteUserAsync(const DeleteUserRequest& request, const DeleteUserResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
334 {
335   m_executor->Submit( [this, request, handler, context](){ this->DeleteUserAsyncHelper( request, handler, context ); } );
336 }
337 
DeleteUserAsyncHelper(const DeleteUserRequest & request,const DeleteUserResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const338 void MQClient::DeleteUserAsyncHelper(const DeleteUserRequest& request, const DeleteUserResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
339 {
340   handler(this, request, DeleteUser(request), context);
341 }
342 
DescribeBroker(const DescribeBrokerRequest & request) const343 DescribeBrokerOutcome MQClient::DescribeBroker(const DescribeBrokerRequest& request) const
344 {
345   if (!request.BrokerIdHasBeenSet())
346   {
347     AWS_LOGSTREAM_ERROR("DescribeBroker", "Required field: BrokerId, is not set");
348     return DescribeBrokerOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [BrokerId]", false));
349   }
350   Aws::Http::URI uri = m_uri;
351   uri.AddPathSegments("/v1/brokers/");
352   uri.AddPathSegment(request.GetBrokerId());
353   return DescribeBrokerOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
354 }
355 
DescribeBrokerCallable(const DescribeBrokerRequest & request) const356 DescribeBrokerOutcomeCallable MQClient::DescribeBrokerCallable(const DescribeBrokerRequest& request) const
357 {
358   auto task = Aws::MakeShared< std::packaged_task< DescribeBrokerOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeBroker(request); } );
359   auto packagedFunction = [task]() { (*task)(); };
360   m_executor->Submit(packagedFunction);
361   return task->get_future();
362 }
363 
DescribeBrokerAsync(const DescribeBrokerRequest & request,const DescribeBrokerResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const364 void MQClient::DescribeBrokerAsync(const DescribeBrokerRequest& request, const DescribeBrokerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
365 {
366   m_executor->Submit( [this, request, handler, context](){ this->DescribeBrokerAsyncHelper( request, handler, context ); } );
367 }
368 
DescribeBrokerAsyncHelper(const DescribeBrokerRequest & request,const DescribeBrokerResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const369 void MQClient::DescribeBrokerAsyncHelper(const DescribeBrokerRequest& request, const DescribeBrokerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
370 {
371   handler(this, request, DescribeBroker(request), context);
372 }
373 
DescribeBrokerEngineTypes(const DescribeBrokerEngineTypesRequest & request) const374 DescribeBrokerEngineTypesOutcome MQClient::DescribeBrokerEngineTypes(const DescribeBrokerEngineTypesRequest& request) const
375 {
376   Aws::Http::URI uri = m_uri;
377   uri.AddPathSegments("/v1/broker-engine-types");
378   return DescribeBrokerEngineTypesOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
379 }
380 
DescribeBrokerEngineTypesCallable(const DescribeBrokerEngineTypesRequest & request) const381 DescribeBrokerEngineTypesOutcomeCallable MQClient::DescribeBrokerEngineTypesCallable(const DescribeBrokerEngineTypesRequest& request) const
382 {
383   auto task = Aws::MakeShared< std::packaged_task< DescribeBrokerEngineTypesOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeBrokerEngineTypes(request); } );
384   auto packagedFunction = [task]() { (*task)(); };
385   m_executor->Submit(packagedFunction);
386   return task->get_future();
387 }
388 
DescribeBrokerEngineTypesAsync(const DescribeBrokerEngineTypesRequest & request,const DescribeBrokerEngineTypesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const389 void MQClient::DescribeBrokerEngineTypesAsync(const DescribeBrokerEngineTypesRequest& request, const DescribeBrokerEngineTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
390 {
391   m_executor->Submit( [this, request, handler, context](){ this->DescribeBrokerEngineTypesAsyncHelper( request, handler, context ); } );
392 }
393 
DescribeBrokerEngineTypesAsyncHelper(const DescribeBrokerEngineTypesRequest & request,const DescribeBrokerEngineTypesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const394 void MQClient::DescribeBrokerEngineTypesAsyncHelper(const DescribeBrokerEngineTypesRequest& request, const DescribeBrokerEngineTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
395 {
396   handler(this, request, DescribeBrokerEngineTypes(request), context);
397 }
398 
DescribeBrokerInstanceOptions(const DescribeBrokerInstanceOptionsRequest & request) const399 DescribeBrokerInstanceOptionsOutcome MQClient::DescribeBrokerInstanceOptions(const DescribeBrokerInstanceOptionsRequest& request) const
400 {
401   Aws::Http::URI uri = m_uri;
402   uri.AddPathSegments("/v1/broker-instance-options");
403   return DescribeBrokerInstanceOptionsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
404 }
405 
DescribeBrokerInstanceOptionsCallable(const DescribeBrokerInstanceOptionsRequest & request) const406 DescribeBrokerInstanceOptionsOutcomeCallable MQClient::DescribeBrokerInstanceOptionsCallable(const DescribeBrokerInstanceOptionsRequest& request) const
407 {
408   auto task = Aws::MakeShared< std::packaged_task< DescribeBrokerInstanceOptionsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeBrokerInstanceOptions(request); } );
409   auto packagedFunction = [task]() { (*task)(); };
410   m_executor->Submit(packagedFunction);
411   return task->get_future();
412 }
413 
DescribeBrokerInstanceOptionsAsync(const DescribeBrokerInstanceOptionsRequest & request,const DescribeBrokerInstanceOptionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const414 void MQClient::DescribeBrokerInstanceOptionsAsync(const DescribeBrokerInstanceOptionsRequest& request, const DescribeBrokerInstanceOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
415 {
416   m_executor->Submit( [this, request, handler, context](){ this->DescribeBrokerInstanceOptionsAsyncHelper( request, handler, context ); } );
417 }
418 
DescribeBrokerInstanceOptionsAsyncHelper(const DescribeBrokerInstanceOptionsRequest & request,const DescribeBrokerInstanceOptionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const419 void MQClient::DescribeBrokerInstanceOptionsAsyncHelper(const DescribeBrokerInstanceOptionsRequest& request, const DescribeBrokerInstanceOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
420 {
421   handler(this, request, DescribeBrokerInstanceOptions(request), context);
422 }
423 
DescribeConfiguration(const DescribeConfigurationRequest & request) const424 DescribeConfigurationOutcome MQClient::DescribeConfiguration(const DescribeConfigurationRequest& request) const
425 {
426   if (!request.ConfigurationIdHasBeenSet())
427   {
428     AWS_LOGSTREAM_ERROR("DescribeConfiguration", "Required field: ConfigurationId, is not set");
429     return DescribeConfigurationOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ConfigurationId]", false));
430   }
431   Aws::Http::URI uri = m_uri;
432   uri.AddPathSegments("/v1/configurations/");
433   uri.AddPathSegment(request.GetConfigurationId());
434   return DescribeConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
435 }
436 
DescribeConfigurationCallable(const DescribeConfigurationRequest & request) const437 DescribeConfigurationOutcomeCallable MQClient::DescribeConfigurationCallable(const DescribeConfigurationRequest& request) const
438 {
439   auto task = Aws::MakeShared< std::packaged_task< DescribeConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeConfiguration(request); } );
440   auto packagedFunction = [task]() { (*task)(); };
441   m_executor->Submit(packagedFunction);
442   return task->get_future();
443 }
444 
DescribeConfigurationAsync(const DescribeConfigurationRequest & request,const DescribeConfigurationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const445 void MQClient::DescribeConfigurationAsync(const DescribeConfigurationRequest& request, const DescribeConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
446 {
447   m_executor->Submit( [this, request, handler, context](){ this->DescribeConfigurationAsyncHelper( request, handler, context ); } );
448 }
449 
DescribeConfigurationAsyncHelper(const DescribeConfigurationRequest & request,const DescribeConfigurationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const450 void MQClient::DescribeConfigurationAsyncHelper(const DescribeConfigurationRequest& request, const DescribeConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
451 {
452   handler(this, request, DescribeConfiguration(request), context);
453 }
454 
DescribeConfigurationRevision(const DescribeConfigurationRevisionRequest & request) const455 DescribeConfigurationRevisionOutcome MQClient::DescribeConfigurationRevision(const DescribeConfigurationRevisionRequest& request) const
456 {
457   if (!request.ConfigurationIdHasBeenSet())
458   {
459     AWS_LOGSTREAM_ERROR("DescribeConfigurationRevision", "Required field: ConfigurationId, is not set");
460     return DescribeConfigurationRevisionOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ConfigurationId]", false));
461   }
462   if (!request.ConfigurationRevisionHasBeenSet())
463   {
464     AWS_LOGSTREAM_ERROR("DescribeConfigurationRevision", "Required field: ConfigurationRevision, is not set");
465     return DescribeConfigurationRevisionOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ConfigurationRevision]", false));
466   }
467   Aws::Http::URI uri = m_uri;
468   uri.AddPathSegments("/v1/configurations/");
469   uri.AddPathSegment(request.GetConfigurationId());
470   uri.AddPathSegments("/revisions/");
471   uri.AddPathSegment(request.GetConfigurationRevision());
472   return DescribeConfigurationRevisionOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
473 }
474 
DescribeConfigurationRevisionCallable(const DescribeConfigurationRevisionRequest & request) const475 DescribeConfigurationRevisionOutcomeCallable MQClient::DescribeConfigurationRevisionCallable(const DescribeConfigurationRevisionRequest& request) const
476 {
477   auto task = Aws::MakeShared< std::packaged_task< DescribeConfigurationRevisionOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeConfigurationRevision(request); } );
478   auto packagedFunction = [task]() { (*task)(); };
479   m_executor->Submit(packagedFunction);
480   return task->get_future();
481 }
482 
DescribeConfigurationRevisionAsync(const DescribeConfigurationRevisionRequest & request,const DescribeConfigurationRevisionResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const483 void MQClient::DescribeConfigurationRevisionAsync(const DescribeConfigurationRevisionRequest& request, const DescribeConfigurationRevisionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
484 {
485   m_executor->Submit( [this, request, handler, context](){ this->DescribeConfigurationRevisionAsyncHelper( request, handler, context ); } );
486 }
487 
DescribeConfigurationRevisionAsyncHelper(const DescribeConfigurationRevisionRequest & request,const DescribeConfigurationRevisionResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const488 void MQClient::DescribeConfigurationRevisionAsyncHelper(const DescribeConfigurationRevisionRequest& request, const DescribeConfigurationRevisionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
489 {
490   handler(this, request, DescribeConfigurationRevision(request), context);
491 }
492 
DescribeUser(const DescribeUserRequest & request) const493 DescribeUserOutcome MQClient::DescribeUser(const DescribeUserRequest& request) const
494 {
495   if (!request.BrokerIdHasBeenSet())
496   {
497     AWS_LOGSTREAM_ERROR("DescribeUser", "Required field: BrokerId, is not set");
498     return DescribeUserOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [BrokerId]", false));
499   }
500   if (!request.UsernameHasBeenSet())
501   {
502     AWS_LOGSTREAM_ERROR("DescribeUser", "Required field: Username, is not set");
503     return DescribeUserOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Username]", false));
504   }
505   Aws::Http::URI uri = m_uri;
506   uri.AddPathSegments("/v1/brokers/");
507   uri.AddPathSegment(request.GetBrokerId());
508   uri.AddPathSegments("/users/");
509   uri.AddPathSegment(request.GetUsername());
510   return DescribeUserOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
511 }
512 
DescribeUserCallable(const DescribeUserRequest & request) const513 DescribeUserOutcomeCallable MQClient::DescribeUserCallable(const DescribeUserRequest& request) const
514 {
515   auto task = Aws::MakeShared< std::packaged_task< DescribeUserOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeUser(request); } );
516   auto packagedFunction = [task]() { (*task)(); };
517   m_executor->Submit(packagedFunction);
518   return task->get_future();
519 }
520 
DescribeUserAsync(const DescribeUserRequest & request,const DescribeUserResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const521 void MQClient::DescribeUserAsync(const DescribeUserRequest& request, const DescribeUserResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
522 {
523   m_executor->Submit( [this, request, handler, context](){ this->DescribeUserAsyncHelper( request, handler, context ); } );
524 }
525 
DescribeUserAsyncHelper(const DescribeUserRequest & request,const DescribeUserResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const526 void MQClient::DescribeUserAsyncHelper(const DescribeUserRequest& request, const DescribeUserResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
527 {
528   handler(this, request, DescribeUser(request), context);
529 }
530 
ListBrokers(const ListBrokersRequest & request) const531 ListBrokersOutcome MQClient::ListBrokers(const ListBrokersRequest& request) const
532 {
533   Aws::Http::URI uri = m_uri;
534   uri.AddPathSegments("/v1/brokers");
535   return ListBrokersOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
536 }
537 
ListBrokersCallable(const ListBrokersRequest & request) const538 ListBrokersOutcomeCallable MQClient::ListBrokersCallable(const ListBrokersRequest& request) const
539 {
540   auto task = Aws::MakeShared< std::packaged_task< ListBrokersOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListBrokers(request); } );
541   auto packagedFunction = [task]() { (*task)(); };
542   m_executor->Submit(packagedFunction);
543   return task->get_future();
544 }
545 
ListBrokersAsync(const ListBrokersRequest & request,const ListBrokersResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const546 void MQClient::ListBrokersAsync(const ListBrokersRequest& request, const ListBrokersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
547 {
548   m_executor->Submit( [this, request, handler, context](){ this->ListBrokersAsyncHelper( request, handler, context ); } );
549 }
550 
ListBrokersAsyncHelper(const ListBrokersRequest & request,const ListBrokersResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const551 void MQClient::ListBrokersAsyncHelper(const ListBrokersRequest& request, const ListBrokersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
552 {
553   handler(this, request, ListBrokers(request), context);
554 }
555 
ListConfigurationRevisions(const ListConfigurationRevisionsRequest & request) const556 ListConfigurationRevisionsOutcome MQClient::ListConfigurationRevisions(const ListConfigurationRevisionsRequest& request) const
557 {
558   if (!request.ConfigurationIdHasBeenSet())
559   {
560     AWS_LOGSTREAM_ERROR("ListConfigurationRevisions", "Required field: ConfigurationId, is not set");
561     return ListConfigurationRevisionsOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ConfigurationId]", false));
562   }
563   Aws::Http::URI uri = m_uri;
564   uri.AddPathSegments("/v1/configurations/");
565   uri.AddPathSegment(request.GetConfigurationId());
566   uri.AddPathSegments("/revisions");
567   return ListConfigurationRevisionsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
568 }
569 
ListConfigurationRevisionsCallable(const ListConfigurationRevisionsRequest & request) const570 ListConfigurationRevisionsOutcomeCallable MQClient::ListConfigurationRevisionsCallable(const ListConfigurationRevisionsRequest& request) const
571 {
572   auto task = Aws::MakeShared< std::packaged_task< ListConfigurationRevisionsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListConfigurationRevisions(request); } );
573   auto packagedFunction = [task]() { (*task)(); };
574   m_executor->Submit(packagedFunction);
575   return task->get_future();
576 }
577 
ListConfigurationRevisionsAsync(const ListConfigurationRevisionsRequest & request,const ListConfigurationRevisionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const578 void MQClient::ListConfigurationRevisionsAsync(const ListConfigurationRevisionsRequest& request, const ListConfigurationRevisionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
579 {
580   m_executor->Submit( [this, request, handler, context](){ this->ListConfigurationRevisionsAsyncHelper( request, handler, context ); } );
581 }
582 
ListConfigurationRevisionsAsyncHelper(const ListConfigurationRevisionsRequest & request,const ListConfigurationRevisionsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const583 void MQClient::ListConfigurationRevisionsAsyncHelper(const ListConfigurationRevisionsRequest& request, const ListConfigurationRevisionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
584 {
585   handler(this, request, ListConfigurationRevisions(request), context);
586 }
587 
ListConfigurations(const ListConfigurationsRequest & request) const588 ListConfigurationsOutcome MQClient::ListConfigurations(const ListConfigurationsRequest& request) const
589 {
590   Aws::Http::URI uri = m_uri;
591   uri.AddPathSegments("/v1/configurations");
592   return ListConfigurationsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
593 }
594 
ListConfigurationsCallable(const ListConfigurationsRequest & request) const595 ListConfigurationsOutcomeCallable MQClient::ListConfigurationsCallable(const ListConfigurationsRequest& request) const
596 {
597   auto task = Aws::MakeShared< std::packaged_task< ListConfigurationsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListConfigurations(request); } );
598   auto packagedFunction = [task]() { (*task)(); };
599   m_executor->Submit(packagedFunction);
600   return task->get_future();
601 }
602 
ListConfigurationsAsync(const ListConfigurationsRequest & request,const ListConfigurationsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const603 void MQClient::ListConfigurationsAsync(const ListConfigurationsRequest& request, const ListConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
604 {
605   m_executor->Submit( [this, request, handler, context](){ this->ListConfigurationsAsyncHelper( request, handler, context ); } );
606 }
607 
ListConfigurationsAsyncHelper(const ListConfigurationsRequest & request,const ListConfigurationsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const608 void MQClient::ListConfigurationsAsyncHelper(const ListConfigurationsRequest& request, const ListConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
609 {
610   handler(this, request, ListConfigurations(request), context);
611 }
612 
ListTags(const ListTagsRequest & request) const613 ListTagsOutcome MQClient::ListTags(const ListTagsRequest& request) const
614 {
615   if (!request.ResourceArnHasBeenSet())
616   {
617     AWS_LOGSTREAM_ERROR("ListTags", "Required field: ResourceArn, is not set");
618     return ListTagsOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
619   }
620   Aws::Http::URI uri = m_uri;
621   uri.AddPathSegments("/v1/tags/");
622   uri.AddPathSegment(request.GetResourceArn());
623   return ListTagsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
624 }
625 
ListTagsCallable(const ListTagsRequest & request) const626 ListTagsOutcomeCallable MQClient::ListTagsCallable(const ListTagsRequest& request) const
627 {
628   auto task = Aws::MakeShared< std::packaged_task< ListTagsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListTags(request); } );
629   auto packagedFunction = [task]() { (*task)(); };
630   m_executor->Submit(packagedFunction);
631   return task->get_future();
632 }
633 
ListTagsAsync(const ListTagsRequest & request,const ListTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const634 void MQClient::ListTagsAsync(const ListTagsRequest& request, const ListTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
635 {
636   m_executor->Submit( [this, request, handler, context](){ this->ListTagsAsyncHelper( request, handler, context ); } );
637 }
638 
ListTagsAsyncHelper(const ListTagsRequest & request,const ListTagsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const639 void MQClient::ListTagsAsyncHelper(const ListTagsRequest& request, const ListTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
640 {
641   handler(this, request, ListTags(request), context);
642 }
643 
ListUsers(const ListUsersRequest & request) const644 ListUsersOutcome MQClient::ListUsers(const ListUsersRequest& request) const
645 {
646   if (!request.BrokerIdHasBeenSet())
647   {
648     AWS_LOGSTREAM_ERROR("ListUsers", "Required field: BrokerId, is not set");
649     return ListUsersOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [BrokerId]", false));
650   }
651   Aws::Http::URI uri = m_uri;
652   uri.AddPathSegments("/v1/brokers/");
653   uri.AddPathSegment(request.GetBrokerId());
654   uri.AddPathSegments("/users");
655   return ListUsersOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
656 }
657 
ListUsersCallable(const ListUsersRequest & request) const658 ListUsersOutcomeCallable MQClient::ListUsersCallable(const ListUsersRequest& request) const
659 {
660   auto task = Aws::MakeShared< std::packaged_task< ListUsersOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListUsers(request); } );
661   auto packagedFunction = [task]() { (*task)(); };
662   m_executor->Submit(packagedFunction);
663   return task->get_future();
664 }
665 
ListUsersAsync(const ListUsersRequest & request,const ListUsersResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const666 void MQClient::ListUsersAsync(const ListUsersRequest& request, const ListUsersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
667 {
668   m_executor->Submit( [this, request, handler, context](){ this->ListUsersAsyncHelper( request, handler, context ); } );
669 }
670 
ListUsersAsyncHelper(const ListUsersRequest & request,const ListUsersResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const671 void MQClient::ListUsersAsyncHelper(const ListUsersRequest& request, const ListUsersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
672 {
673   handler(this, request, ListUsers(request), context);
674 }
675 
RebootBroker(const RebootBrokerRequest & request) const676 RebootBrokerOutcome MQClient::RebootBroker(const RebootBrokerRequest& request) const
677 {
678   if (!request.BrokerIdHasBeenSet())
679   {
680     AWS_LOGSTREAM_ERROR("RebootBroker", "Required field: BrokerId, is not set");
681     return RebootBrokerOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [BrokerId]", false));
682   }
683   Aws::Http::URI uri = m_uri;
684   uri.AddPathSegments("/v1/brokers/");
685   uri.AddPathSegment(request.GetBrokerId());
686   uri.AddPathSegments("/reboot");
687   return RebootBrokerOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
688 }
689 
RebootBrokerCallable(const RebootBrokerRequest & request) const690 RebootBrokerOutcomeCallable MQClient::RebootBrokerCallable(const RebootBrokerRequest& request) const
691 {
692   auto task = Aws::MakeShared< std::packaged_task< RebootBrokerOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->RebootBroker(request); } );
693   auto packagedFunction = [task]() { (*task)(); };
694   m_executor->Submit(packagedFunction);
695   return task->get_future();
696 }
697 
RebootBrokerAsync(const RebootBrokerRequest & request,const RebootBrokerResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const698 void MQClient::RebootBrokerAsync(const RebootBrokerRequest& request, const RebootBrokerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
699 {
700   m_executor->Submit( [this, request, handler, context](){ this->RebootBrokerAsyncHelper( request, handler, context ); } );
701 }
702 
RebootBrokerAsyncHelper(const RebootBrokerRequest & request,const RebootBrokerResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const703 void MQClient::RebootBrokerAsyncHelper(const RebootBrokerRequest& request, const RebootBrokerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
704 {
705   handler(this, request, RebootBroker(request), context);
706 }
707 
UpdateBroker(const UpdateBrokerRequest & request) const708 UpdateBrokerOutcome MQClient::UpdateBroker(const UpdateBrokerRequest& request) const
709 {
710   if (!request.BrokerIdHasBeenSet())
711   {
712     AWS_LOGSTREAM_ERROR("UpdateBroker", "Required field: BrokerId, is not set");
713     return UpdateBrokerOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [BrokerId]", false));
714   }
715   Aws::Http::URI uri = m_uri;
716   uri.AddPathSegments("/v1/brokers/");
717   uri.AddPathSegment(request.GetBrokerId());
718   return UpdateBrokerOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
719 }
720 
UpdateBrokerCallable(const UpdateBrokerRequest & request) const721 UpdateBrokerOutcomeCallable MQClient::UpdateBrokerCallable(const UpdateBrokerRequest& request) const
722 {
723   auto task = Aws::MakeShared< std::packaged_task< UpdateBrokerOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UpdateBroker(request); } );
724   auto packagedFunction = [task]() { (*task)(); };
725   m_executor->Submit(packagedFunction);
726   return task->get_future();
727 }
728 
UpdateBrokerAsync(const UpdateBrokerRequest & request,const UpdateBrokerResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const729 void MQClient::UpdateBrokerAsync(const UpdateBrokerRequest& request, const UpdateBrokerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
730 {
731   m_executor->Submit( [this, request, handler, context](){ this->UpdateBrokerAsyncHelper( request, handler, context ); } );
732 }
733 
UpdateBrokerAsyncHelper(const UpdateBrokerRequest & request,const UpdateBrokerResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const734 void MQClient::UpdateBrokerAsyncHelper(const UpdateBrokerRequest& request, const UpdateBrokerResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
735 {
736   handler(this, request, UpdateBroker(request), context);
737 }
738 
UpdateConfiguration(const UpdateConfigurationRequest & request) const739 UpdateConfigurationOutcome MQClient::UpdateConfiguration(const UpdateConfigurationRequest& request) const
740 {
741   if (!request.ConfigurationIdHasBeenSet())
742   {
743     AWS_LOGSTREAM_ERROR("UpdateConfiguration", "Required field: ConfigurationId, is not set");
744     return UpdateConfigurationOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ConfigurationId]", false));
745   }
746   Aws::Http::URI uri = m_uri;
747   uri.AddPathSegments("/v1/configurations/");
748   uri.AddPathSegment(request.GetConfigurationId());
749   return UpdateConfigurationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
750 }
751 
UpdateConfigurationCallable(const UpdateConfigurationRequest & request) const752 UpdateConfigurationOutcomeCallable MQClient::UpdateConfigurationCallable(const UpdateConfigurationRequest& request) const
753 {
754   auto task = Aws::MakeShared< std::packaged_task< UpdateConfigurationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UpdateConfiguration(request); } );
755   auto packagedFunction = [task]() { (*task)(); };
756   m_executor->Submit(packagedFunction);
757   return task->get_future();
758 }
759 
UpdateConfigurationAsync(const UpdateConfigurationRequest & request,const UpdateConfigurationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const760 void MQClient::UpdateConfigurationAsync(const UpdateConfigurationRequest& request, const UpdateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
761 {
762   m_executor->Submit( [this, request, handler, context](){ this->UpdateConfigurationAsyncHelper( request, handler, context ); } );
763 }
764 
UpdateConfigurationAsyncHelper(const UpdateConfigurationRequest & request,const UpdateConfigurationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const765 void MQClient::UpdateConfigurationAsyncHelper(const UpdateConfigurationRequest& request, const UpdateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
766 {
767   handler(this, request, UpdateConfiguration(request), context);
768 }
769 
UpdateUser(const UpdateUserRequest & request) const770 UpdateUserOutcome MQClient::UpdateUser(const UpdateUserRequest& request) const
771 {
772   if (!request.BrokerIdHasBeenSet())
773   {
774     AWS_LOGSTREAM_ERROR("UpdateUser", "Required field: BrokerId, is not set");
775     return UpdateUserOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [BrokerId]", false));
776   }
777   if (!request.UsernameHasBeenSet())
778   {
779     AWS_LOGSTREAM_ERROR("UpdateUser", "Required field: Username, is not set");
780     return UpdateUserOutcome(Aws::Client::AWSError<MQErrors>(MQErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Username]", false));
781   }
782   Aws::Http::URI uri = m_uri;
783   uri.AddPathSegments("/v1/brokers/");
784   uri.AddPathSegment(request.GetBrokerId());
785   uri.AddPathSegments("/users/");
786   uri.AddPathSegment(request.GetUsername());
787   return UpdateUserOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
788 }
789 
UpdateUserCallable(const UpdateUserRequest & request) const790 UpdateUserOutcomeCallable MQClient::UpdateUserCallable(const UpdateUserRequest& request) const
791 {
792   auto task = Aws::MakeShared< std::packaged_task< UpdateUserOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UpdateUser(request); } );
793   auto packagedFunction = [task]() { (*task)(); };
794   m_executor->Submit(packagedFunction);
795   return task->get_future();
796 }
797 
UpdateUserAsync(const UpdateUserRequest & request,const UpdateUserResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const798 void MQClient::UpdateUserAsync(const UpdateUserRequest& request, const UpdateUserResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
799 {
800   m_executor->Submit( [this, request, handler, context](){ this->UpdateUserAsyncHelper( request, handler, context ); } );
801 }
802 
UpdateUserAsyncHelper(const UpdateUserRequest & request,const UpdateUserResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const803 void MQClient::UpdateUserAsyncHelper(const UpdateUserRequest& request, const UpdateUserResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
804 {
805   handler(this, request, UpdateUser(request), context);
806 }
807 
808