AWS SDK for C++

AWS SDK for C++ Version 1.11.786

Loading...
Searching...
No Matches
EC2Waiter.h
1
6#pragma once
7#include <aws/core/utils/Waiter.h>
8#include <aws/core/utils/memory/AWSMemory.h>
9#include <aws/ec2/EC2Client.h>
10#include <aws/ec2/model/BundleTaskState.h>
11#include <aws/ec2/model/ConversionTaskState.h>
12#include <aws/ec2/model/DescribeBundleTasksRequest.h>
13#include <aws/ec2/model/DescribeBundleTasksResponse.h>
14#include <aws/ec2/model/DescribeConversionTasksRequest.h>
15#include <aws/ec2/model/DescribeConversionTasksResponse.h>
16#include <aws/ec2/model/DescribeCustomerGatewaysRequest.h>
17#include <aws/ec2/model/DescribeCustomerGatewaysResponse.h>
18#include <aws/ec2/model/DescribeExportTasksRequest.h>
19#include <aws/ec2/model/DescribeExportTasksResponse.h>
20#include <aws/ec2/model/DescribeImageUsageReportsRequest.h>
21#include <aws/ec2/model/DescribeImageUsageReportsResponse.h>
22#include <aws/ec2/model/DescribeImagesRequest.h>
23#include <aws/ec2/model/DescribeImagesResponse.h>
24#include <aws/ec2/model/DescribeImportSnapshotTasksRequest.h>
25#include <aws/ec2/model/DescribeImportSnapshotTasksResponse.h>
26#include <aws/ec2/model/DescribeInstanceStatusRequest.h>
27#include <aws/ec2/model/DescribeInstanceStatusResponse.h>
28#include <aws/ec2/model/DescribeInstancesRequest.h>
29#include <aws/ec2/model/DescribeInstancesResponse.h>
30#include <aws/ec2/model/DescribeInternetGatewaysRequest.h>
31#include <aws/ec2/model/DescribeInternetGatewaysResponse.h>
32#include <aws/ec2/model/DescribeKeyPairsRequest.h>
33#include <aws/ec2/model/DescribeKeyPairsResponse.h>
34#include <aws/ec2/model/DescribeNatGatewaysRequest.h>
35#include <aws/ec2/model/DescribeNatGatewaysResponse.h>
36#include <aws/ec2/model/DescribeNetworkInterfacesRequest.h>
37#include <aws/ec2/model/DescribeNetworkInterfacesResponse.h>
38#include <aws/ec2/model/DescribeSecondaryNetworksRequest.h>
39#include <aws/ec2/model/DescribeSecondaryNetworksResponse.h>
40#include <aws/ec2/model/DescribeSecondarySubnetsRequest.h>
41#include <aws/ec2/model/DescribeSecondarySubnetsResponse.h>
42#include <aws/ec2/model/DescribeSecurityGroupVpcAssociationsRequest.h>
43#include <aws/ec2/model/DescribeSecurityGroupVpcAssociationsResponse.h>
44#include <aws/ec2/model/DescribeSecurityGroupsRequest.h>
45#include <aws/ec2/model/DescribeSecurityGroupsResponse.h>
46#include <aws/ec2/model/DescribeSnapshotsRequest.h>
47#include <aws/ec2/model/DescribeSnapshotsResponse.h>
48#include <aws/ec2/model/DescribeSpotInstanceRequestsRequest.h>
49#include <aws/ec2/model/DescribeSpotInstanceRequestsResponse.h>
50#include <aws/ec2/model/DescribeStoreImageTasksRequest.h>
51#include <aws/ec2/model/DescribeStoreImageTasksResponse.h>
52#include <aws/ec2/model/DescribeSubnetsRequest.h>
53#include <aws/ec2/model/DescribeSubnetsResponse.h>
54#include <aws/ec2/model/DescribeVolumesRequest.h>
55#include <aws/ec2/model/DescribeVolumesResponse.h>
56#include <aws/ec2/model/DescribeVpcPeeringConnectionsRequest.h>
57#include <aws/ec2/model/DescribeVpcPeeringConnectionsResponse.h>
58#include <aws/ec2/model/DescribeVpcsRequest.h>
59#include <aws/ec2/model/DescribeVpcsResponse.h>
60#include <aws/ec2/model/DescribeVpnConnectionsRequest.h>
61#include <aws/ec2/model/DescribeVpnConnectionsResponse.h>
62#include <aws/ec2/model/ExportTaskState.h>
63#include <aws/ec2/model/GetPasswordDataRequest.h>
64#include <aws/ec2/model/GetPasswordDataResponse.h>
65#include <aws/ec2/model/ImageState.h>
66#include <aws/ec2/model/InstanceStateName.h>
67#include <aws/ec2/model/NatGatewayState.h>
68#include <aws/ec2/model/NetworkInterfaceStatus.h>
69#include <aws/ec2/model/SecondaryNetworkState.h>
70#include <aws/ec2/model/SecondarySubnetState.h>
71#include <aws/ec2/model/SecurityGroupVpcAssociationState.h>
72#include <aws/ec2/model/SnapshotState.h>
73#include <aws/ec2/model/SubnetState.h>
74#include <aws/ec2/model/SummaryStatus.h>
75#include <aws/ec2/model/VolumeState.h>
76#include <aws/ec2/model/VpcPeeringConnectionStateReasonCode.h>
77#include <aws/ec2/model/VpcState.h>
78#include <aws/ec2/model/VpnState.h>
79
80#include <algorithm>
81
82namespace Aws {
83namespace EC2 {
84
85template <typename DerivedClient = EC2Client>
86class EC2Waiter {
87 public:
89 const Model::DescribeBundleTasksRequest& request) {
90 using OutcomeT = Model::DescribeBundleTasksOutcome;
91 using RequestT = Model::DescribeBundleTasksRequest;
94 "BundleTaskCompleteWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("complete"),
95 [](const Model::DescribeBundleTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
96 if (!outcome.IsSuccess()) return false;
97 const auto& result = outcome.GetResult();
98 return std::all_of(result.GetBundleTasks().begin(), result.GetBundleTasks().end(), [&](const Model::BundleTask& item) {
99 return Model::BundleTaskStateMapper::GetNameForBundleTaskState(item.GetState()) == expected.get<Aws::String>();
100 });
101 }));
103 "BundleTaskCompleteWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("failed"),
104 [](const Model::DescribeBundleTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
105 if (!outcome.IsSuccess()) return false;
106 const auto& result = outcome.GetResult();
107 return std::any_of(result.GetBundleTasks().begin(), result.GetBundleTasks().end(), [&](const Model::BundleTask& item) {
108 return Model::BundleTaskStateMapper::GetNameForBundleTaskState(item.GetState()) == expected.get<Aws::String>();
109 });
110 }));
111
112 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeBundleTasks(req); };
113 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilBundleTaskComplete");
114 return waiter.Wait(request);
115 }
116
123 "ConversionTaskCancelledWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("cancelled"),
124 [](const Model::DescribeConversionTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
125 if (!outcome.IsSuccess()) return false;
126 const auto& result = outcome.GetResult();
127 return std::all_of(
128 result.GetConversionTasks().begin(), result.GetConversionTasks().end(), [&](const Model::ConversionTask& item) {
129 return Model::ConversionTaskStateMapper::GetNameForConversionTaskState(item.GetState()) == expected.get<Aws::String>();
130 });
131 }));
132
133 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeConversionTasks(req); };
134 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilConversionTaskCancelled");
135 return waiter.Wait(request);
136 }
137
144 "ConversionTaskCompletedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("completed"),
145 [](const Model::DescribeConversionTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
146 if (!outcome.IsSuccess()) return false;
147 const auto& result = outcome.GetResult();
148 return std::all_of(
149 result.GetConversionTasks().begin(), result.GetConversionTasks().end(), [&](const Model::ConversionTask& item) {
150 return Model::ConversionTaskStateMapper::GetNameForConversionTaskState(item.GetState()) == expected.get<Aws::String>();
151 });
152 }));
154 "ConversionTaskCompletedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("cancelled"),
155 [](const Model::DescribeConversionTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
156 if (!outcome.IsSuccess()) return false;
157 const auto& result = outcome.GetResult();
158 return std::any_of(
159 result.GetConversionTasks().begin(), result.GetConversionTasks().end(), [&](const Model::ConversionTask& item) {
160 return Model::ConversionTaskStateMapper::GetNameForConversionTaskState(item.GetState()) == expected.get<Aws::String>();
161 });
162 }));
164 "ConversionTaskCompletedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("cancelling"),
165 [](const Model::DescribeConversionTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
166 if (!outcome.IsSuccess()) return false;
167 const auto& result = outcome.GetResult();
168 return std::any_of(
169 result.GetConversionTasks().begin(), result.GetConversionTasks().end(), [&](const Model::ConversionTask& item) {
170 return Model::ConversionTaskStateMapper::GetNameForConversionTaskState(item.GetState()) == expected.get<Aws::String>();
171 });
172 }));
173
174 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeConversionTasks(req); };
175 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilConversionTaskCompleted");
176 return waiter.Wait(request);
177 }
178
185 "ConversionTaskDeletedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("deleted"),
186 [](const Model::DescribeConversionTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
187 if (!outcome.IsSuccess()) return false;
188 const auto& result = outcome.GetResult();
189 return std::all_of(
190 result.GetConversionTasks().begin(), result.GetConversionTasks().end(), [&](const Model::ConversionTask& item) {
191 return Model::ConversionTaskStateMapper::GetNameForConversionTaskState(item.GetState()) == expected.get<Aws::String>();
192 });
193 }));
194
195 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeConversionTasks(req); };
196 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilConversionTaskDeleted");
197 return waiter.Wait(request);
198 }
199
206 "CustomerGatewayAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("available"),
207 [](const Model::DescribeCustomerGatewaysOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
208 if (!outcome.IsSuccess()) return false;
209 const auto& result = outcome.GetResult();
210 return std::all_of(result.GetCustomerGateways().begin(), result.GetCustomerGateways().end(),
211 [&](const Model::CustomerGateway& item) { return item.GetState() == expected.get<Aws::String>(); });
212 }));
214 "CustomerGatewayAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("deleted"),
215 [](const Model::DescribeCustomerGatewaysOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
216 if (!outcome.IsSuccess()) return false;
217 const auto& result = outcome.GetResult();
218 return std::any_of(result.GetCustomerGateways().begin(), result.GetCustomerGateways().end(),
219 [&](const Model::CustomerGateway& item) { return item.GetState() == expected.get<Aws::String>(); });
220 }));
222 "CustomerGatewayAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("deleting"),
223 [](const Model::DescribeCustomerGatewaysOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
224 if (!outcome.IsSuccess()) return false;
225 const auto& result = outcome.GetResult();
226 return std::any_of(result.GetCustomerGateways().begin(), result.GetCustomerGateways().end(),
227 [&](const Model::CustomerGateway& item) { return item.GetState() == expected.get<Aws::String>(); });
228 }));
229
230 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeCustomerGateways(req); };
231 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilCustomerGatewayAvailable");
232 return waiter.Wait(request);
233 }
234
236 const Model::DescribeExportTasksRequest& request) {
237 using OutcomeT = Model::DescribeExportTasksOutcome;
238 using RequestT = Model::DescribeExportTasksRequest;
241 "ExportTaskCancelledWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("cancelled"),
242 [](const Model::DescribeExportTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
243 if (!outcome.IsSuccess()) return false;
244 const auto& result = outcome.GetResult();
245 return std::all_of(result.GetExportTasks().begin(), result.GetExportTasks().end(), [&](const Model::ExportTask& item) {
246 return Model::ExportTaskStateMapper::GetNameForExportTaskState(item.GetState()) == expected.get<Aws::String>();
247 });
248 }));
249
250 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeExportTasks(req); };
251 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilExportTaskCancelled");
252 return waiter.Wait(request);
253 }
254
256 const Model::DescribeExportTasksRequest& request) {
257 using OutcomeT = Model::DescribeExportTasksOutcome;
258 using RequestT = Model::DescribeExportTasksRequest;
261 "ExportTaskCompletedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("completed"),
262 [](const Model::DescribeExportTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
263 if (!outcome.IsSuccess()) return false;
264 const auto& result = outcome.GetResult();
265 return std::all_of(result.GetExportTasks().begin(), result.GetExportTasks().end(), [&](const Model::ExportTask& item) {
266 return Model::ExportTaskStateMapper::GetNameForExportTaskState(item.GetState()) == expected.get<Aws::String>();
267 });
268 }));
269
270 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeExportTasks(req); };
271 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilExportTaskCompleted");
272 return waiter.Wait(request);
273 }
274
276 using OutcomeT = Model::DescribeImagesOutcome;
277 using RequestT = Model::DescribeImagesRequest;
280 "ImageAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("available"),
281 [](const Model::DescribeImagesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
282 if (!outcome.IsSuccess()) return false;
283 const auto& result = outcome.GetResult();
284 return std::all_of(result.GetImages().begin(), result.GetImages().end(), [&](const Model::Image& item) {
285 return Model::ImageStateMapper::GetNameForImageState(item.GetState()) == expected.get<Aws::String>();
286 });
287 }));
289 "ImageAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("failed"),
290 [](const Model::DescribeImagesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
291 if (!outcome.IsSuccess()) return false;
292 const auto& result = outcome.GetResult();
293 return std::any_of(result.GetImages().begin(), result.GetImages().end(), [&](const Model::Image& item) {
294 return Model::ImageStateMapper::GetNameForImageState(item.GetState()) == expected.get<Aws::String>();
295 });
296 }));
297
298 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeImages(req); };
299 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilImageAvailable");
300 return waiter.Wait(request);
301 }
302
304 using OutcomeT = Model::DescribeImagesOutcome;
305 using RequestT = Model::DescribeImagesRequest;
308 "ImageExistsWaiter", Aws::Utils::WaiterState::SUCCESS, true,
309 [](const Model::DescribeImagesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
310 if (!outcome.IsSuccess()) return false;
311 const auto& result = outcome.GetResult();
312 return (result.GetImages().size() > 0) == expected.get<bool>();
313 }));
314 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("ImageExistsWaiter", Aws::Utils::WaiterState::RETRY,
315 Aws::String("InvalidAMIID.NotFound")));
316
317 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeImages(req); };
318 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilImageExists");
319 return waiter.Wait(request);
320 }
321
328 "ImageUsageReportAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("available"),
329 [](const Model::DescribeImageUsageReportsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
330 if (!outcome.IsSuccess()) return false;
331 const auto& result = outcome.GetResult();
332 return std::all_of(result.GetImageUsageReports().begin(), result.GetImageUsageReports().end(),
333 [&](const Model::ImageUsageReport& item) { return item.GetState() == expected.get<Aws::String>(); });
334 }));
336 "ImageUsageReportAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("failed"),
337 [](const Model::DescribeImageUsageReportsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
338 if (!outcome.IsSuccess()) return false;
339 const auto& result = outcome.GetResult();
340 return std::any_of(result.GetImageUsageReports().begin(), result.GetImageUsageReports().end(),
341 [&](const Model::ImageUsageReport& item) { return item.GetState() == expected.get<Aws::String>(); });
342 }));
343
344 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeImageUsageReports(req); };
345 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilImageUsageReportAvailable");
346 return waiter.Wait(request);
347 }
348
355 "SnapshotImportedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("completed"),
356 [](const Model::DescribeImportSnapshotTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
357 if (!outcome.IsSuccess()) return false;
358 const auto& result = outcome.GetResult();
359 return std::all_of(result.GetImportSnapshotTasks().begin(), result.GetImportSnapshotTasks().end(),
360 [&](const Model::ImportSnapshotTask& item) {
361 return item.GetSnapshotTaskDetail().GetStatus() == expected.get<Aws::String>();
362 });
363 }));
365 "SnapshotImportedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("error"),
366 [](const Model::DescribeImportSnapshotTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
367 if (!outcome.IsSuccess()) return false;
368 const auto& result = outcome.GetResult();
369 return std::any_of(result.GetImportSnapshotTasks().begin(), result.GetImportSnapshotTasks().end(),
370 [&](const Model::ImportSnapshotTask& item) {
371 return item.GetSnapshotTaskDetail().GetStatus() == expected.get<Aws::String>();
372 });
373 }));
374
375 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeImportSnapshotTasks(req); };
376 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilSnapshotImported");
377 return waiter.Wait(request);
378 }
379
381 using OutcomeT = Model::DescribeInstancesOutcome;
382 using RequestT = Model::DescribeInstancesRequest;
385 "InstanceExistsWaiter", Aws::Utils::WaiterState::SUCCESS, true,
386 [](const Model::DescribeInstancesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
387 if (!outcome.IsSuccess()) return false;
388 const auto& result = outcome.GetResult();
389 return (result.GetReservations().size() > 0) == expected.get<bool>();
390 }));
391 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("InstanceExistsWaiter", Aws::Utils::WaiterState::RETRY,
392 Aws::String("InvalidInstanceID.NotFound")));
393
394 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeInstances(req); };
395 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(5, 24, std::move(acceptors), operation, "WaitUntilInstanceExists");
396 return waiter.Wait(request);
397 }
398
400 using OutcomeT = Model::DescribeInstancesOutcome;
401 using RequestT = Model::DescribeInstancesRequest;
404 "InstanceRunningWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("running"),
405 [](const Model::DescribeInstancesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
406 if (!outcome.IsSuccess()) return false;
407 const auto& result = outcome.GetResult();
408 return std::all_of(result.GetReservations().begin(), result.GetReservations().end(), [&](const Model::Reservation& item0) {
409 return std::all_of(item0.GetInstances().begin(), item0.GetInstances().end(), [&](const Model::Instance& item1) {
410 return Model::InstanceStateNameMapper::GetNameForInstanceStateName(item1.GetState().GetName()) == expected.get<Aws::String>();
411 });
412 });
413 }));
415 "InstanceRunningWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("shutting-down"),
416 [](const Model::DescribeInstancesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
417 if (!outcome.IsSuccess()) return false;
418 const auto& result = outcome.GetResult();
419 return std::any_of(result.GetReservations().begin(), result.GetReservations().end(), [&](const Model::Reservation& item0) {
420 return std::any_of(item0.GetInstances().begin(), item0.GetInstances().end(), [&](const Model::Instance& item1) {
421 return Model::InstanceStateNameMapper::GetNameForInstanceStateName(item1.GetState().GetName()) == expected.get<Aws::String>();
422 });
423 });
424 }));
426 "InstanceRunningWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("terminated"),
427 [](const Model::DescribeInstancesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
428 if (!outcome.IsSuccess()) return false;
429 const auto& result = outcome.GetResult();
430 return std::any_of(result.GetReservations().begin(), result.GetReservations().end(), [&](const Model::Reservation& item0) {
431 return std::any_of(item0.GetInstances().begin(), item0.GetInstances().end(), [&](const Model::Instance& item1) {
432 return Model::InstanceStateNameMapper::GetNameForInstanceStateName(item1.GetState().GetName()) == expected.get<Aws::String>();
433 });
434 });
435 }));
437 "InstanceRunningWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("stopping"),
438 [](const Model::DescribeInstancesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
439 if (!outcome.IsSuccess()) return false;
440 const auto& result = outcome.GetResult();
441 return std::any_of(result.GetReservations().begin(), result.GetReservations().end(), [&](const Model::Reservation& item0) {
442 return std::any_of(item0.GetInstances().begin(), item0.GetInstances().end(), [&](const Model::Instance& item1) {
443 return Model::InstanceStateNameMapper::GetNameForInstanceStateName(item1.GetState().GetName()) == expected.get<Aws::String>();
444 });
445 });
446 }));
447 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("InstanceRunningWaiter", Aws::Utils::WaiterState::RETRY,
448 Aws::String("InvalidInstanceID.NotFound")));
449
450 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeInstances(req); };
451 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilInstanceRunning");
452 return waiter.Wait(request);
453 }
454
456 using OutcomeT = Model::DescribeInstancesOutcome;
457 using RequestT = Model::DescribeInstancesRequest;
460 "InstanceStoppedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("stopped"),
461 [](const Model::DescribeInstancesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
462 if (!outcome.IsSuccess()) return false;
463 const auto& result = outcome.GetResult();
464 return std::all_of(result.GetReservations().begin(), result.GetReservations().end(), [&](const Model::Reservation& item0) {
465 return std::all_of(item0.GetInstances().begin(), item0.GetInstances().end(), [&](const Model::Instance& item1) {
466 return Model::InstanceStateNameMapper::GetNameForInstanceStateName(item1.GetState().GetName()) == expected.get<Aws::String>();
467 });
468 });
469 }));
471 "InstanceStoppedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("pending"),
472 [](const Model::DescribeInstancesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
473 if (!outcome.IsSuccess()) return false;
474 const auto& result = outcome.GetResult();
475 return std::any_of(result.GetReservations().begin(), result.GetReservations().end(), [&](const Model::Reservation& item0) {
476 return std::any_of(item0.GetInstances().begin(), item0.GetInstances().end(), [&](const Model::Instance& item1) {
477 return Model::InstanceStateNameMapper::GetNameForInstanceStateName(item1.GetState().GetName()) == expected.get<Aws::String>();
478 });
479 });
480 }));
482 "InstanceStoppedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("terminated"),
483 [](const Model::DescribeInstancesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
484 if (!outcome.IsSuccess()) return false;
485 const auto& result = outcome.GetResult();
486 return std::any_of(result.GetReservations().begin(), result.GetReservations().end(), [&](const Model::Reservation& item0) {
487 return std::any_of(item0.GetInstances().begin(), item0.GetInstances().end(), [&](const Model::Instance& item1) {
488 return Model::InstanceStateNameMapper::GetNameForInstanceStateName(item1.GetState().GetName()) == expected.get<Aws::String>();
489 });
490 });
491 }));
492
493 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeInstances(req); };
494 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilInstanceStopped");
495 return waiter.Wait(request);
496 }
497
499 using OutcomeT = Model::DescribeInstancesOutcome;
500 using RequestT = Model::DescribeInstancesRequest;
503 "InstanceTerminatedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("terminated"),
504 [](const Model::DescribeInstancesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
505 if (!outcome.IsSuccess()) return false;
506 const auto& result = outcome.GetResult();
507 return std::all_of(result.GetReservations().begin(), result.GetReservations().end(), [&](const Model::Reservation& item0) {
508 return std::all_of(item0.GetInstances().begin(), item0.GetInstances().end(), [&](const Model::Instance& item1) {
509 return Model::InstanceStateNameMapper::GetNameForInstanceStateName(item1.GetState().GetName()) == expected.get<Aws::String>();
510 });
511 });
512 }));
514 "InstanceTerminatedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("pending"),
515 [](const Model::DescribeInstancesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
516 if (!outcome.IsSuccess()) return false;
517 const auto& result = outcome.GetResult();
518 return std::any_of(result.GetReservations().begin(), result.GetReservations().end(), [&](const Model::Reservation& item0) {
519 return std::any_of(item0.GetInstances().begin(), item0.GetInstances().end(), [&](const Model::Instance& item1) {
520 return Model::InstanceStateNameMapper::GetNameForInstanceStateName(item1.GetState().GetName()) == expected.get<Aws::String>();
521 });
522 });
523 }));
525 "InstanceTerminatedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("stopping"),
526 [](const Model::DescribeInstancesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
527 if (!outcome.IsSuccess()) return false;
528 const auto& result = outcome.GetResult();
529 return std::any_of(result.GetReservations().begin(), result.GetReservations().end(), [&](const Model::Reservation& item0) {
530 return std::any_of(item0.GetInstances().begin(), item0.GetInstances().end(), [&](const Model::Instance& item1) {
531 return Model::InstanceStateNameMapper::GetNameForInstanceStateName(item1.GetState().GetName()) == expected.get<Aws::String>();
532 });
533 });
534 }));
535
536 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeInstances(req); };
537 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilInstanceTerminated");
538 return waiter.Wait(request);
539 }
540
547 "InstanceStatusOkWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("ok"),
548 [](const Model::DescribeInstanceStatusOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
549 if (!outcome.IsSuccess()) return false;
550 const auto& result = outcome.GetResult();
551 return std::all_of(result.GetInstanceStatuses().begin(), result.GetInstanceStatuses().end(),
552 [&](const Model::InstanceStatus& item) {
553 return Model::SummaryStatusMapper::GetNameForSummaryStatus(item.GetInstanceStatus().GetStatus()) ==
554 expected.get<Aws::String>();
555 });
556 }));
557 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("InstanceStatusOkWaiter", Aws::Utils::WaiterState::RETRY,
558 Aws::String("InvalidInstanceID.NotFound")));
559
560 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeInstanceStatus(req); };
561 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilInstanceStatusOk");
562 return waiter.Wait(request);
563 }
564
571 "SystemStatusOkWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("ok"),
572 [](const Model::DescribeInstanceStatusOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
573 if (!outcome.IsSuccess()) return false;
574 const auto& result = outcome.GetResult();
575 return std::all_of(result.GetInstanceStatuses().begin(), result.GetInstanceStatuses().end(),
576 [&](const Model::InstanceStatus& item) {
577 return Model::SummaryStatusMapper::GetNameForSummaryStatus(item.GetSystemStatus().GetStatus()) ==
578 expected.get<Aws::String>();
579 });
580 }));
581
582 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeInstanceStatus(req); };
583 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilSystemStatusOk");
584 return waiter.Wait(request);
585 }
586
593 "InternetGatewayExistsWaiter", Aws::Utils::WaiterState::SUCCESS, true,
594 [](const Model::DescribeInternetGatewaysOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
595 if (!outcome.IsSuccess()) return false;
596 const auto& result = outcome.GetResult();
597 return (result.GetInternetGateways().size() > 0) == expected.get<bool>();
598 }));
600 "InternetGatewayExistsWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("InvalidInternetGateway.NotFound")));
601
602 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeInternetGateways(req); };
603 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(5, 24, std::move(acceptors), operation, "WaitUntilInternetGatewayExists");
604 return waiter.Wait(request);
605 }
606
608 using OutcomeT = Model::DescribeKeyPairsOutcome;
609 using RequestT = Model::DescribeKeyPairsRequest;
612 "KeyPairExistsWaiter", Aws::Utils::WaiterState::SUCCESS, true,
613 [](const Model::DescribeKeyPairsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
614 if (!outcome.IsSuccess()) return false;
615 const auto& result = outcome.GetResult();
616 return (result.GetKeyPairs().size() > 0) == expected.get<bool>();
617 }));
618 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("KeyPairExistsWaiter", Aws::Utils::WaiterState::RETRY,
619 Aws::String("InvalidKeyPair.NotFound")));
620
621 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeKeyPairs(req); };
622 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(5, 24, std::move(acceptors), operation, "WaitUntilKeyPairExists");
623 return waiter.Wait(request);
624 }
625
627 const Model::DescribeNatGatewaysRequest& request) {
628 using OutcomeT = Model::DescribeNatGatewaysOutcome;
629 using RequestT = Model::DescribeNatGatewaysRequest;
632 "NatGatewayAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("available"),
633 [](const Model::DescribeNatGatewaysOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
634 if (!outcome.IsSuccess()) return false;
635 const auto& result = outcome.GetResult();
636 return std::all_of(result.GetNatGateways().begin(), result.GetNatGateways().end(), [&](const Model::NatGateway& item) {
637 return Model::NatGatewayStateMapper::GetNameForNatGatewayState(item.GetState()) == expected.get<Aws::String>();
638 });
639 }));
641 "NatGatewayAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("failed"),
642 [](const Model::DescribeNatGatewaysOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
643 if (!outcome.IsSuccess()) return false;
644 const auto& result = outcome.GetResult();
645 return std::any_of(result.GetNatGateways().begin(), result.GetNatGateways().end(), [&](const Model::NatGateway& item) {
646 return Model::NatGatewayStateMapper::GetNameForNatGatewayState(item.GetState()) == expected.get<Aws::String>();
647 });
648 }));
650 "NatGatewayAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("deleting"),
651 [](const Model::DescribeNatGatewaysOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
652 if (!outcome.IsSuccess()) return false;
653 const auto& result = outcome.GetResult();
654 return std::any_of(result.GetNatGateways().begin(), result.GetNatGateways().end(), [&](const Model::NatGateway& item) {
655 return Model::NatGatewayStateMapper::GetNameForNatGatewayState(item.GetState()) == expected.get<Aws::String>();
656 });
657 }));
659 "NatGatewayAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("deleted"),
660 [](const Model::DescribeNatGatewaysOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
661 if (!outcome.IsSuccess()) return false;
662 const auto& result = outcome.GetResult();
663 return std::any_of(result.GetNatGateways().begin(), result.GetNatGateways().end(), [&](const Model::NatGateway& item) {
664 return Model::NatGatewayStateMapper::GetNameForNatGatewayState(item.GetState()) == expected.get<Aws::String>();
665 });
666 }));
667 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("NatGatewayAvailableWaiter", Aws::Utils::WaiterState::RETRY,
668 Aws::String("NatGatewayNotFound")));
669
670 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeNatGateways(req); };
671 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilNatGatewayAvailable");
672 return waiter.Wait(request);
673 }
674
676 const Model::DescribeNatGatewaysRequest& request) {
677 using OutcomeT = Model::DescribeNatGatewaysOutcome;
678 using RequestT = Model::DescribeNatGatewaysRequest;
681 "NatGatewayDeletedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("deleted"),
682 [](const Model::DescribeNatGatewaysOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
683 if (!outcome.IsSuccess()) return false;
684 const auto& result = outcome.GetResult();
685 return std::all_of(result.GetNatGateways().begin(), result.GetNatGateways().end(), [&](const Model::NatGateway& item) {
686 return Model::NatGatewayStateMapper::GetNameForNatGatewayState(item.GetState()) == expected.get<Aws::String>();
687 });
688 }));
689 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("NatGatewayDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
690 Aws::String("NatGatewayNotFound")));
691
692 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeNatGateways(req); };
693 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilNatGatewayDeleted");
694 return waiter.Wait(request);
695 }
696
703 "NetworkInterfaceAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("available"),
704 [](const Model::DescribeNetworkInterfacesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
705 if (!outcome.IsSuccess()) return false;
706 const auto& result = outcome.GetResult();
707 return std::all_of(result.GetNetworkInterfaces().begin(), result.GetNetworkInterfaces().end(),
708 [&](const Model::NetworkInterface& item) {
709 return Model::NetworkInterfaceStatusMapper::GetNameForNetworkInterfaceStatus(item.GetStatus()) ==
710 expected.get<Aws::String>();
711 });
712 }));
714 "NetworkInterfaceAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("InvalidNetworkInterfaceID.NotFound")));
715
716 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeNetworkInterfaces(req); };
717 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(20, 6, std::move(acceptors), operation, "WaitUntilNetworkInterfaceAvailable");
718 return waiter.Wait(request);
719 }
720
727 "SecondaryNetworkCreateCompleteWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("create-complete"),
728 [](const Model::DescribeSecondaryNetworksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
729 if (!outcome.IsSuccess()) return false;
730 const auto& result = outcome.GetResult();
731 return std::all_of(
732 result.GetSecondaryNetworks().begin(), result.GetSecondaryNetworks().end(), [&](const Model::SecondaryNetwork& item) {
733 return Model::SecondaryNetworkStateMapper::GetNameForSecondaryNetworkState(item.GetState()) == expected.get<Aws::String>();
734 });
735 }));
737 "SecondaryNetworkCreateCompleteWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("create-failed"),
738 [](const Model::DescribeSecondaryNetworksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
739 if (!outcome.IsSuccess()) return false;
740 const auto& result = outcome.GetResult();
741 return std::any_of(
742 result.GetSecondaryNetworks().begin(), result.GetSecondaryNetworks().end(), [&](const Model::SecondaryNetwork& item) {
743 return Model::SecondaryNetworkStateMapper::GetNameForSecondaryNetworkState(item.GetState()) == expected.get<Aws::String>();
744 });
745 }));
747 "SecondaryNetworkCreateCompleteWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("InvalidSecondaryNetworkId.NotFound")));
748
749 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeSecondaryNetworks(req); };
750 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(10, 12, std::move(acceptors), operation, "WaitUntilSecondaryNetworkCreateComplete");
751 return waiter.Wait(request);
752 }
753
760 "SecondaryNetworkDeleteCompleteWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("delete-complete"),
761 [](const Model::DescribeSecondaryNetworksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
762 if (!outcome.IsSuccess()) return false;
763 const auto& result = outcome.GetResult();
764 return std::all_of(
765 result.GetSecondaryNetworks().begin(), result.GetSecondaryNetworks().end(), [&](const Model::SecondaryNetwork& item) {
766 return Model::SecondaryNetworkStateMapper::GetNameForSecondaryNetworkState(item.GetState()) == expected.get<Aws::String>();
767 });
768 }));
770 "SecondaryNetworkDeleteCompleteWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("delete-failed"),
771 [](const Model::DescribeSecondaryNetworksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
772 if (!outcome.IsSuccess()) return false;
773 const auto& result = outcome.GetResult();
774 return std::any_of(
775 result.GetSecondaryNetworks().begin(), result.GetSecondaryNetworks().end(), [&](const Model::SecondaryNetwork& item) {
776 return Model::SecondaryNetworkStateMapper::GetNameForSecondaryNetworkState(item.GetState()) == expected.get<Aws::String>();
777 });
778 }));
779
780 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeSecondaryNetworks(req); };
781 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(10, 12, std::move(acceptors), operation, "WaitUntilSecondaryNetworkDeleteComplete");
782 return waiter.Wait(request);
783 }
784
791 "SecondarySubnetCreateCompleteWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("create-complete"),
792 [](const Model::DescribeSecondarySubnetsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
793 if (!outcome.IsSuccess()) return false;
794 const auto& result = outcome.GetResult();
795 return std::all_of(
796 result.GetSecondarySubnets().begin(), result.GetSecondarySubnets().end(), [&](const Model::SecondarySubnet& item) {
797 return Model::SecondarySubnetStateMapper::GetNameForSecondarySubnetState(item.GetState()) == expected.get<Aws::String>();
798 });
799 }));
801 "SecondarySubnetCreateCompleteWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("delete-failed"),
802 [](const Model::DescribeSecondarySubnetsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
803 if (!outcome.IsSuccess()) return false;
804 const auto& result = outcome.GetResult();
805 return std::any_of(
806 result.GetSecondarySubnets().begin(), result.GetSecondarySubnets().end(), [&](const Model::SecondarySubnet& item) {
807 return Model::SecondarySubnetStateMapper::GetNameForSecondarySubnetState(item.GetState()) == expected.get<Aws::String>();
808 });
809 }));
811 "SecondarySubnetCreateCompleteWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("InvalidSecondarySubnetId.NotFound")));
812
813 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeSecondarySubnets(req); };
814 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(10, 12, std::move(acceptors), operation, "WaitUntilSecondarySubnetCreateComplete");
815 return waiter.Wait(request);
816 }
817
824 "SecondarySubnetDeleteCompleteWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("delete-complete"),
825 [](const Model::DescribeSecondarySubnetsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
826 if (!outcome.IsSuccess()) return false;
827 const auto& result = outcome.GetResult();
828 return std::all_of(
829 result.GetSecondarySubnets().begin(), result.GetSecondarySubnets().end(), [&](const Model::SecondarySubnet& item) {
830 return Model::SecondarySubnetStateMapper::GetNameForSecondarySubnetState(item.GetState()) == expected.get<Aws::String>();
831 });
832 }));
834 "SecondarySubnetDeleteCompleteWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("delete-failed"),
835 [](const Model::DescribeSecondarySubnetsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
836 if (!outcome.IsSuccess()) return false;
837 const auto& result = outcome.GetResult();
838 return std::any_of(
839 result.GetSecondarySubnets().begin(), result.GetSecondarySubnets().end(), [&](const Model::SecondarySubnet& item) {
840 return Model::SecondarySubnetStateMapper::GetNameForSecondarySubnetState(item.GetState()) == expected.get<Aws::String>();
841 });
842 }));
843
844 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeSecondarySubnets(req); };
845 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(10, 12, std::move(acceptors), operation, "WaitUntilSecondarySubnetDeleteComplete");
846 return waiter.Wait(request);
847 }
848
855 "SecurityGroupExistsWaiter", Aws::Utils::WaiterState::SUCCESS, true,
856 [](const Model::DescribeSecurityGroupsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
857 if (!outcome.IsSuccess()) return false;
858 const auto& result = outcome.GetResult();
859 return (result.GetSecurityGroups().size() > 0) == expected.get<bool>();
860 }));
861 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("SecurityGroupExistsWaiter", Aws::Utils::WaiterState::RETRY,
862 Aws::String("InvalidGroup.NotFound")));
863
864 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeSecurityGroups(req); };
865 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(5, 24, std::move(acceptors), operation, "WaitUntilSecurityGroupExists");
866 return waiter.Wait(request);
867 }
868
875 "SecurityGroupVpcAssociationAssociatedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("associated"),
876 [](const Model::DescribeSecurityGroupVpcAssociationsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
877 if (!outcome.IsSuccess()) return false;
878 const auto& result = outcome.GetResult();
879 return std::all_of(result.GetSecurityGroupVpcAssociations().begin(), result.GetSecurityGroupVpcAssociations().end(),
880 [&](const Model::SecurityGroupVpcAssociation& item) {
881 return Model::SecurityGroupVpcAssociationStateMapper::GetNameForSecurityGroupVpcAssociationState(
882 item.GetState()) == expected.get<Aws::String>();
883 });
884 }));
886 "SecurityGroupVpcAssociationAssociatedWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("associating"),
887 [](const Model::DescribeSecurityGroupVpcAssociationsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
888 if (!outcome.IsSuccess()) return false;
889 const auto& result = outcome.GetResult();
890 return std::any_of(result.GetSecurityGroupVpcAssociations().begin(), result.GetSecurityGroupVpcAssociations().end(),
891 [&](const Model::SecurityGroupVpcAssociation& item) {
892 return Model::SecurityGroupVpcAssociationStateMapper::GetNameForSecurityGroupVpcAssociationState(
893 item.GetState()) == expected.get<Aws::String>();
894 });
895 }));
897 "SecurityGroupVpcAssociationAssociatedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("association-failed"),
898 [](const Model::DescribeSecurityGroupVpcAssociationsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
899 if (!outcome.IsSuccess()) return false;
900 const auto& result = outcome.GetResult();
901 return std::any_of(result.GetSecurityGroupVpcAssociations().begin(), result.GetSecurityGroupVpcAssociations().end(),
902 [&](const Model::SecurityGroupVpcAssociation& item) {
903 return Model::SecurityGroupVpcAssociationStateMapper::GetNameForSecurityGroupVpcAssociationState(
904 item.GetState()) == expected.get<Aws::String>();
905 });
906 }));
907
908 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeSecurityGroupVpcAssociations(req); };
909 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(10, 12, std::move(acceptors), operation,
910 "WaitUntilSecurityGroupVpcAssociationAssociated");
911 return waiter.Wait(request);
912 }
913
920 "SecurityGroupVpcAssociationDisassociatedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("disassociated"),
921 [](const Model::DescribeSecurityGroupVpcAssociationsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
922 if (!outcome.IsSuccess()) return false;
923 const auto& result = outcome.GetResult();
924 return std::all_of(result.GetSecurityGroupVpcAssociations().begin(), result.GetSecurityGroupVpcAssociations().end(),
925 [&](const Model::SecurityGroupVpcAssociation& item) {
926 return Model::SecurityGroupVpcAssociationStateMapper::GetNameForSecurityGroupVpcAssociationState(
927 item.GetState()) == expected.get<Aws::String>();
928 });
929 }));
931 "SecurityGroupVpcAssociationDisassociatedWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("disassociating"),
932 [](const Model::DescribeSecurityGroupVpcAssociationsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
933 if (!outcome.IsSuccess()) return false;
934 const auto& result = outcome.GetResult();
935 return std::any_of(result.GetSecurityGroupVpcAssociations().begin(), result.GetSecurityGroupVpcAssociations().end(),
936 [&](const Model::SecurityGroupVpcAssociation& item) {
937 return Model::SecurityGroupVpcAssociationStateMapper::GetNameForSecurityGroupVpcAssociationState(
938 item.GetState()) == expected.get<Aws::String>();
939 });
940 }));
942 "SecurityGroupVpcAssociationDisassociatedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("disassociation-failed"),
943 [](const Model::DescribeSecurityGroupVpcAssociationsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
944 if (!outcome.IsSuccess()) return false;
945 const auto& result = outcome.GetResult();
946 return std::any_of(result.GetSecurityGroupVpcAssociations().begin(), result.GetSecurityGroupVpcAssociations().end(),
947 [&](const Model::SecurityGroupVpcAssociation& item) {
948 return Model::SecurityGroupVpcAssociationStateMapper::GetNameForSecurityGroupVpcAssociationState(
949 item.GetState()) == expected.get<Aws::String>();
950 });
951 }));
953 "SecurityGroupVpcAssociationDisassociatedWaiter", Aws::Utils::WaiterState::SUCCESS, true,
954 [](const Model::DescribeSecurityGroupVpcAssociationsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
955 if (!outcome.IsSuccess()) return false;
956 const auto& result = outcome.GetResult();
957 return (result.GetSecurityGroupVpcAssociations().size() == 0) == expected.get<bool>();
958 }));
959
960 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeSecurityGroupVpcAssociations(req); };
961 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(10, 12, std::move(acceptors), operation,
962 "WaitUntilSecurityGroupVpcAssociationDisassociated");
963 return waiter.Wait(request);
964 }
965
967 using OutcomeT = Model::DescribeSnapshotsOutcome;
968 using RequestT = Model::DescribeSnapshotsRequest;
971 "SnapshotCompletedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("completed"),
972 [](const Model::DescribeSnapshotsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
973 if (!outcome.IsSuccess()) return false;
974 const auto& result = outcome.GetResult();
975 return std::all_of(result.GetSnapshots().begin(), result.GetSnapshots().end(), [&](const Model::Snapshot& item) {
976 return Model::SnapshotStateMapper::GetNameForSnapshotState(item.GetState()) == expected.get<Aws::String>();
977 });
978 }));
980 "SnapshotCompletedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("error"),
981 [](const Model::DescribeSnapshotsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
982 if (!outcome.IsSuccess()) return false;
983 const auto& result = outcome.GetResult();
984 return std::any_of(result.GetSnapshots().begin(), result.GetSnapshots().end(), [&](const Model::Snapshot& item) {
985 return Model::SnapshotStateMapper::GetNameForSnapshotState(item.GetState()) == expected.get<Aws::String>();
986 });
987 }));
988
989 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeSnapshots(req); };
990 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilSnapshotCompleted");
991 return waiter.Wait(request);
992 }
993
1000 "SpotInstanceRequestFulfilledWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("fulfilled"),
1001 [](const Model::DescribeSpotInstanceRequestsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1002 if (!outcome.IsSuccess()) return false;
1003 const auto& result = outcome.GetResult();
1004 return std::all_of(
1005 result.GetSpotInstanceRequests().begin(), result.GetSpotInstanceRequests().end(),
1006 [&](const Model::SpotInstanceRequest& item) { return item.GetStatus().GetCode() == expected.get<Aws::String>(); });
1007 }));
1009 "SpotInstanceRequestFulfilledWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("request-canceled-and-instance-running"),
1010 [](const Model::DescribeSpotInstanceRequestsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1011 if (!outcome.IsSuccess()) return false;
1012 const auto& result = outcome.GetResult();
1013 return std::all_of(
1014 result.GetSpotInstanceRequests().begin(), result.GetSpotInstanceRequests().end(),
1015 [&](const Model::SpotInstanceRequest& item) { return item.GetStatus().GetCode() == expected.get<Aws::String>(); });
1016 }));
1018 "SpotInstanceRequestFulfilledWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("schedule-expired"),
1019 [](const Model::DescribeSpotInstanceRequestsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1020 if (!outcome.IsSuccess()) return false;
1021 const auto& result = outcome.GetResult();
1022 return std::any_of(
1023 result.GetSpotInstanceRequests().begin(), result.GetSpotInstanceRequests().end(),
1024 [&](const Model::SpotInstanceRequest& item) { return item.GetStatus().GetCode() == expected.get<Aws::String>(); });
1025 }));
1027 "SpotInstanceRequestFulfilledWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("canceled-before-fulfillment"),
1028 [](const Model::DescribeSpotInstanceRequestsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1029 if (!outcome.IsSuccess()) return false;
1030 const auto& result = outcome.GetResult();
1031 return std::any_of(
1032 result.GetSpotInstanceRequests().begin(), result.GetSpotInstanceRequests().end(),
1033 [&](const Model::SpotInstanceRequest& item) { return item.GetStatus().GetCode() == expected.get<Aws::String>(); });
1034 }));
1036 "SpotInstanceRequestFulfilledWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("bad-parameters"),
1037 [](const Model::DescribeSpotInstanceRequestsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1038 if (!outcome.IsSuccess()) return false;
1039 const auto& result = outcome.GetResult();
1040 return std::any_of(
1041 result.GetSpotInstanceRequests().begin(), result.GetSpotInstanceRequests().end(),
1042 [&](const Model::SpotInstanceRequest& item) { return item.GetStatus().GetCode() == expected.get<Aws::String>(); });
1043 }));
1045 "SpotInstanceRequestFulfilledWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("system-error"),
1046 [](const Model::DescribeSpotInstanceRequestsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1047 if (!outcome.IsSuccess()) return false;
1048 const auto& result = outcome.GetResult();
1049 return std::any_of(
1050 result.GetSpotInstanceRequests().begin(), result.GetSpotInstanceRequests().end(),
1051 [&](const Model::SpotInstanceRequest& item) { return item.GetStatus().GetCode() == expected.get<Aws::String>(); });
1052 }));
1054 "SpotInstanceRequestFulfilledWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("InvalidSpotInstanceRequestID.NotFound")));
1055
1056 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeSpotInstanceRequests(req); };
1057 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilSpotInstanceRequestFulfilled");
1058 return waiter.Wait(request);
1059 }
1060
1067 "StoreImageTaskCompleteWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("Completed"),
1068 [](const Model::DescribeStoreImageTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1069 if (!outcome.IsSuccess()) return false;
1070 const auto& result = outcome.GetResult();
1071 return std::all_of(
1072 result.GetStoreImageTaskResults().begin(), result.GetStoreImageTaskResults().end(),
1073 [&](const Model::StoreImageTaskResponse& item) { return item.GetStoreTaskState() == expected.get<Aws::String>(); });
1074 }));
1076 "StoreImageTaskCompleteWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("Failed"),
1077 [](const Model::DescribeStoreImageTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1078 if (!outcome.IsSuccess()) return false;
1079 const auto& result = outcome.GetResult();
1080 return std::any_of(
1081 result.GetStoreImageTaskResults().begin(), result.GetStoreImageTaskResults().end(),
1082 [&](const Model::StoreImageTaskResponse& item) { return item.GetStoreTaskState() == expected.get<Aws::String>(); });
1083 }));
1085 "StoreImageTaskCompleteWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("InProgress"),
1086 [](const Model::DescribeStoreImageTasksOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1087 if (!outcome.IsSuccess()) return false;
1088 const auto& result = outcome.GetResult();
1089 return std::any_of(
1090 result.GetStoreImageTaskResults().begin(), result.GetStoreImageTaskResults().end(),
1091 [&](const Model::StoreImageTaskResponse& item) { return item.GetStoreTaskState() == expected.get<Aws::String>(); });
1092 }));
1093
1094 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeStoreImageTasks(req); };
1095 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(5, 24, std::move(acceptors), operation, "WaitUntilStoreImageTaskComplete");
1096 return waiter.Wait(request);
1097 }
1098
1100 using OutcomeT = Model::DescribeSubnetsOutcome;
1101 using RequestT = Model::DescribeSubnetsRequest;
1104 "SubnetAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("available"),
1105 [](const Model::DescribeSubnetsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1106 if (!outcome.IsSuccess()) return false;
1107 const auto& result = outcome.GetResult();
1108 return std::all_of(result.GetSubnets().begin(), result.GetSubnets().end(), [&](const Model::Subnet& item) {
1109 return Model::SubnetStateMapper::GetNameForSubnetState(item.GetState()) == expected.get<Aws::String>();
1110 });
1111 }));
1112
1113 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeSubnets(req); };
1114 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilSubnetAvailable");
1115 return waiter.Wait(request);
1116 }
1117
1119 using OutcomeT = Model::DescribeVolumesOutcome;
1120 using RequestT = Model::DescribeVolumesRequest;
1123 "VolumeAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("available"),
1124 [](const Model::DescribeVolumesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1125 if (!outcome.IsSuccess()) return false;
1126 const auto& result = outcome.GetResult();
1127 return std::all_of(result.GetVolumes().begin(), result.GetVolumes().end(), [&](const Model::Volume& item) {
1128 return Model::VolumeStateMapper::GetNameForVolumeState(item.GetState()) == expected.get<Aws::String>();
1129 });
1130 }));
1132 "VolumeAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("deleted"),
1133 [](const Model::DescribeVolumesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1134 if (!outcome.IsSuccess()) return false;
1135 const auto& result = outcome.GetResult();
1136 return std::any_of(result.GetVolumes().begin(), result.GetVolumes().end(), [&](const Model::Volume& item) {
1137 return Model::VolumeStateMapper::GetNameForVolumeState(item.GetState()) == expected.get<Aws::String>();
1138 });
1139 }));
1140
1141 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeVolumes(req); };
1142 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilVolumeAvailable");
1143 return waiter.Wait(request);
1144 }
1145
1147 using OutcomeT = Model::DescribeVolumesOutcome;
1148 using RequestT = Model::DescribeVolumesRequest;
1151 "VolumeDeletedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("deleted"),
1152 [](const Model::DescribeVolumesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1153 if (!outcome.IsSuccess()) return false;
1154 const auto& result = outcome.GetResult();
1155 return std::all_of(result.GetVolumes().begin(), result.GetVolumes().end(), [&](const Model::Volume& item) {
1156 return Model::VolumeStateMapper::GetNameForVolumeState(item.GetState()) == expected.get<Aws::String>();
1157 });
1158 }));
1159 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("VolumeDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
1160 Aws::String("InvalidVolume.NotFound")));
1161
1162 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeVolumes(req); };
1163 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilVolumeDeleted");
1164 return waiter.Wait(request);
1165 }
1166
1168 using OutcomeT = Model::DescribeVolumesOutcome;
1169 using RequestT = Model::DescribeVolumesRequest;
1172 "VolumeInUseWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("in-use"),
1173 [](const Model::DescribeVolumesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1174 if (!outcome.IsSuccess()) return false;
1175 const auto& result = outcome.GetResult();
1176 return std::all_of(result.GetVolumes().begin(), result.GetVolumes().end(), [&](const Model::Volume& item) {
1177 return Model::VolumeStateMapper::GetNameForVolumeState(item.GetState()) == expected.get<Aws::String>();
1178 });
1179 }));
1181 "VolumeInUseWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("deleted"),
1182 [](const Model::DescribeVolumesOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1183 if (!outcome.IsSuccess()) return false;
1184 const auto& result = outcome.GetResult();
1185 return std::any_of(result.GetVolumes().begin(), result.GetVolumes().end(), [&](const Model::Volume& item) {
1186 return Model::VolumeStateMapper::GetNameForVolumeState(item.GetState()) == expected.get<Aws::String>();
1187 });
1188 }));
1189
1190 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeVolumes(req); };
1191 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilVolumeInUse");
1192 return waiter.Wait(request);
1193 }
1194
1201 "VpcPeeringConnectionDeletedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("deleted"),
1202 [](const Model::DescribeVpcPeeringConnectionsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1203 if (!outcome.IsSuccess()) return false;
1204 const auto& result = outcome.GetResult();
1205 return std::all_of(result.GetVpcPeeringConnections().begin(), result.GetVpcPeeringConnections().end(),
1206 [&](const Model::VpcPeeringConnection& item) {
1207 return Model::VpcPeeringConnectionStateReasonCodeMapper::GetNameForVpcPeeringConnectionStateReasonCode(
1208 item.GetStatus().GetCode()) == expected.get<Aws::String>();
1209 });
1210 }));
1212 "VpcPeeringConnectionDeletedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("InvalidVpcPeeringConnectionID.NotFound")));
1213
1214 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeVpcPeeringConnections(req); };
1215 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilVpcPeeringConnectionDeleted");
1216 return waiter.Wait(request);
1217 }
1218
1224 acceptors.emplace_back(
1225 Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("VpcPeeringConnectionExistsWaiter", Aws::Utils::WaiterState::SUCCESS, false));
1227 "VpcPeeringConnectionExistsWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("InvalidVpcPeeringConnectionID.NotFound")));
1228
1229 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeVpcPeeringConnections(req); };
1230 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilVpcPeeringConnectionExists");
1231 return waiter.Wait(request);
1232 }
1233
1235 using OutcomeT = Model::DescribeVpcsOutcome;
1236 using RequestT = Model::DescribeVpcsRequest;
1239 "VpcAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("available"),
1240 [](const Model::DescribeVpcsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1241 if (!outcome.IsSuccess()) return false;
1242 const auto& result = outcome.GetResult();
1243 return std::all_of(result.GetVpcs().begin(), result.GetVpcs().end(), [&](const Model::Vpc& item) {
1244 return Model::VpcStateMapper::GetNameForVpcState(item.GetState()) == expected.get<Aws::String>();
1245 });
1246 }));
1247
1248 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeVpcs(req); };
1249 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilVpcAvailable");
1250 return waiter.Wait(request);
1251 }
1252
1254 using OutcomeT = Model::DescribeVpcsOutcome;
1255 using RequestT = Model::DescribeVpcsRequest;
1257 acceptors.emplace_back(
1258 Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("VpcExistsWaiter", Aws::Utils::WaiterState::SUCCESS, false));
1259 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("VpcExistsWaiter", Aws::Utils::WaiterState::RETRY,
1260 Aws::String("InvalidVpcID.NotFound")));
1261
1262 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeVpcs(req); };
1263 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(1, 120, std::move(acceptors), operation, "WaitUntilVpcExists");
1264 return waiter.Wait(request);
1265 }
1266
1268 const Model::DescribeVpnConnectionsRequest& request) {
1269 using OutcomeT = Model::DescribeVpnConnectionsOutcome;
1270 using RequestT = Model::DescribeVpnConnectionsRequest;
1273 "VpnConnectionAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("available"),
1274 [](const Model::DescribeVpnConnectionsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1275 if (!outcome.IsSuccess()) return false;
1276 const auto& result = outcome.GetResult();
1277 return std::all_of(result.GetVpnConnections().begin(), result.GetVpnConnections().end(), [&](const Model::VpnConnection& item) {
1278 return Model::VpnStateMapper::GetNameForVpnState(item.GetState()) == expected.get<Aws::String>();
1279 });
1280 }));
1282 "VpnConnectionAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("deleting"),
1283 [](const Model::DescribeVpnConnectionsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1284 if (!outcome.IsSuccess()) return false;
1285 const auto& result = outcome.GetResult();
1286 return std::any_of(result.GetVpnConnections().begin(), result.GetVpnConnections().end(), [&](const Model::VpnConnection& item) {
1287 return Model::VpnStateMapper::GetNameForVpnState(item.GetState()) == expected.get<Aws::String>();
1288 });
1289 }));
1291 "VpnConnectionAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("deleted"),
1292 [](const Model::DescribeVpnConnectionsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1293 if (!outcome.IsSuccess()) return false;
1294 const auto& result = outcome.GetResult();
1295 return std::any_of(result.GetVpnConnections().begin(), result.GetVpnConnections().end(), [&](const Model::VpnConnection& item) {
1296 return Model::VpnStateMapper::GetNameForVpnState(item.GetState()) == expected.get<Aws::String>();
1297 });
1298 }));
1299
1300 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeVpnConnections(req); };
1301 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilVpnConnectionAvailable");
1302 return waiter.Wait(request);
1303 }
1304
1306 const Model::DescribeVpnConnectionsRequest& request) {
1307 using OutcomeT = Model::DescribeVpnConnectionsOutcome;
1308 using RequestT = Model::DescribeVpnConnectionsRequest;
1311 "VpnConnectionDeletedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("deleted"),
1312 [](const Model::DescribeVpnConnectionsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1313 if (!outcome.IsSuccess()) return false;
1314 const auto& result = outcome.GetResult();
1315 return std::all_of(result.GetVpnConnections().begin(), result.GetVpnConnections().end(), [&](const Model::VpnConnection& item) {
1316 return Model::VpnStateMapper::GetNameForVpnState(item.GetState()) == expected.get<Aws::String>();
1317 });
1318 }));
1320 "VpnConnectionDeletedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("pending"),
1321 [](const Model::DescribeVpnConnectionsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1322 if (!outcome.IsSuccess()) return false;
1323 const auto& result = outcome.GetResult();
1324 return std::any_of(result.GetVpnConnections().begin(), result.GetVpnConnections().end(), [&](const Model::VpnConnection& item) {
1325 return Model::VpnStateMapper::GetNameForVpnState(item.GetState()) == expected.get<Aws::String>();
1326 });
1327 }));
1328
1329 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeVpnConnections(req); };
1330 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilVpnConnectionDeleted");
1331 return waiter.Wait(request);
1332 }
1333
1335 using OutcomeT = Model::GetPasswordDataOutcome;
1336 using RequestT = Model::GetPasswordDataRequest;
1339 "PasswordDataAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, true,
1340 [](const Model::GetPasswordDataOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
1341 if (!outcome.IsSuccess()) return false;
1342 const auto& result = outcome.GetResult();
1343 return (result.GetPasswordData().size() > 0) == expected.get<bool>();
1344 }));
1345
1346 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->GetPasswordData(req); };
1347 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilPasswordDataAvailable");
1348 return waiter.Wait(request);
1349 }
1350};
1351} // namespace EC2
1352} // namespace Aws
Aws::Utils::WaiterOutcome< Model::DescribeSecurityGroupsOutcome > WaitUntilSecurityGroupExists(const Model::DescribeSecurityGroupsRequest &request)
Definition EC2Waiter.h:849
Aws::Utils::WaiterOutcome< Model::DescribeConversionTasksOutcome > WaitUntilConversionTaskCancelled(const Model::DescribeConversionTasksRequest &request)
Definition EC2Waiter.h:117
Aws::Utils::WaiterOutcome< Model::DescribeImagesOutcome > WaitUntilImageExists(const Model::DescribeImagesRequest &request)
Definition EC2Waiter.h:303
Aws::Utils::WaiterOutcome< Model::DescribeVolumesOutcome > WaitUntilVolumeAvailable(const Model::DescribeVolumesRequest &request)
Definition EC2Waiter.h:1118
Aws::Utils::WaiterOutcome< Model::DescribeCustomerGatewaysOutcome > WaitUntilCustomerGatewayAvailable(const Model::DescribeCustomerGatewaysRequest &request)
Definition EC2Waiter.h:200
Aws::Utils::WaiterOutcome< Model::DescribeStoreImageTasksOutcome > WaitUntilStoreImageTaskComplete(const Model::DescribeStoreImageTasksRequest &request)
Definition EC2Waiter.h:1061
Aws::Utils::WaiterOutcome< Model::DescribeSubnetsOutcome > WaitUntilSubnetAvailable(const Model::DescribeSubnetsRequest &request)
Definition EC2Waiter.h:1099
Aws::Utils::WaiterOutcome< Model::GetPasswordDataOutcome > WaitUntilPasswordDataAvailable(const Model::GetPasswordDataRequest &request)
Definition EC2Waiter.h:1334
Aws::Utils::WaiterOutcome< Model::DescribeNatGatewaysOutcome > WaitUntilNatGatewayAvailable(const Model::DescribeNatGatewaysRequest &request)
Definition EC2Waiter.h:626
Aws::Utils::WaiterOutcome< Model::DescribeSecurityGroupVpcAssociationsOutcome > WaitUntilSecurityGroupVpcAssociationAssociated(const Model::DescribeSecurityGroupVpcAssociationsRequest &request)
Definition EC2Waiter.h:869
Aws::Utils::WaiterOutcome< Model::DescribeSpotInstanceRequestsOutcome > WaitUntilSpotInstanceRequestFulfilled(const Model::DescribeSpotInstanceRequestsRequest &request)
Definition EC2Waiter.h:994
Aws::Utils::WaiterOutcome< Model::DescribeSecondaryNetworksOutcome > WaitUntilSecondaryNetworkDeleteComplete(const Model::DescribeSecondaryNetworksRequest &request)
Definition EC2Waiter.h:754
Aws::Utils::WaiterOutcome< Model::DescribeNetworkInterfacesOutcome > WaitUntilNetworkInterfaceAvailable(const Model::DescribeNetworkInterfacesRequest &request)
Definition EC2Waiter.h:697
Aws::Utils::WaiterOutcome< Model::DescribeInstancesOutcome > WaitUntilInstanceTerminated(const Model::DescribeInstancesRequest &request)
Definition EC2Waiter.h:498
Aws::Utils::WaiterOutcome< Model::DescribeImageUsageReportsOutcome > WaitUntilImageUsageReportAvailable(const Model::DescribeImageUsageReportsRequest &request)
Definition EC2Waiter.h:322
Aws::Utils::WaiterOutcome< Model::DescribeVpcsOutcome > WaitUntilVpcAvailable(const Model::DescribeVpcsRequest &request)
Definition EC2Waiter.h:1234
Aws::Utils::WaiterOutcome< Model::DescribeInstancesOutcome > WaitUntilInstanceRunning(const Model::DescribeInstancesRequest &request)
Definition EC2Waiter.h:399
Aws::Utils::WaiterOutcome< Model::DescribeSnapshotsOutcome > WaitUntilSnapshotCompleted(const Model::DescribeSnapshotsRequest &request)
Definition EC2Waiter.h:966
Aws::Utils::WaiterOutcome< Model::DescribeNatGatewaysOutcome > WaitUntilNatGatewayDeleted(const Model::DescribeNatGatewaysRequest &request)
Definition EC2Waiter.h:675
Aws::Utils::WaiterOutcome< Model::DescribeBundleTasksOutcome > WaitUntilBundleTaskComplete(const Model::DescribeBundleTasksRequest &request)
Definition EC2Waiter.h:88
Aws::Utils::WaiterOutcome< Model::DescribeConversionTasksOutcome > WaitUntilConversionTaskCompleted(const Model::DescribeConversionTasksRequest &request)
Definition EC2Waiter.h:138
Aws::Utils::WaiterOutcome< Model::DescribeVpnConnectionsOutcome > WaitUntilVpnConnectionDeleted(const Model::DescribeVpnConnectionsRequest &request)
Definition EC2Waiter.h:1305
Aws::Utils::WaiterOutcome< Model::DescribeExportTasksOutcome > WaitUntilExportTaskCancelled(const Model::DescribeExportTasksRequest &request)
Definition EC2Waiter.h:235
Aws::Utils::WaiterOutcome< Model::DescribeInstanceStatusOutcome > WaitUntilSystemStatusOk(const Model::DescribeInstanceStatusRequest &request)
Definition EC2Waiter.h:565
Aws::Utils::WaiterOutcome< Model::DescribeInternetGatewaysOutcome > WaitUntilInternetGatewayExists(const Model::DescribeInternetGatewaysRequest &request)
Definition EC2Waiter.h:587
Aws::Utils::WaiterOutcome< Model::DescribeSecondarySubnetsOutcome > WaitUntilSecondarySubnetCreateComplete(const Model::DescribeSecondarySubnetsRequest &request)
Definition EC2Waiter.h:785
Aws::Utils::WaiterOutcome< Model::DescribeExportTasksOutcome > WaitUntilExportTaskCompleted(const Model::DescribeExportTasksRequest &request)
Definition EC2Waiter.h:255
Aws::Utils::WaiterOutcome< Model::DescribeVpcsOutcome > WaitUntilVpcExists(const Model::DescribeVpcsRequest &request)
Definition EC2Waiter.h:1253
Aws::Utils::WaiterOutcome< Model::DescribeConversionTasksOutcome > WaitUntilConversionTaskDeleted(const Model::DescribeConversionTasksRequest &request)
Definition EC2Waiter.h:179
Aws::Utils::WaiterOutcome< Model::DescribeInstanceStatusOutcome > WaitUntilInstanceStatusOk(const Model::DescribeInstanceStatusRequest &request)
Definition EC2Waiter.h:541
Aws::Utils::WaiterOutcome< Model::DescribeVpnConnectionsOutcome > WaitUntilVpnConnectionAvailable(const Model::DescribeVpnConnectionsRequest &request)
Definition EC2Waiter.h:1267
Aws::Utils::WaiterOutcome< Model::DescribeVolumesOutcome > WaitUntilVolumeDeleted(const Model::DescribeVolumesRequest &request)
Definition EC2Waiter.h:1146
Aws::Utils::WaiterOutcome< Model::DescribeVolumesOutcome > WaitUntilVolumeInUse(const Model::DescribeVolumesRequest &request)
Definition EC2Waiter.h:1167
Aws::Utils::WaiterOutcome< Model::DescribeSecondarySubnetsOutcome > WaitUntilSecondarySubnetDeleteComplete(const Model::DescribeSecondarySubnetsRequest &request)
Definition EC2Waiter.h:818
Aws::Utils::WaiterOutcome< Model::DescribeImportSnapshotTasksOutcome > WaitUntilSnapshotImported(const Model::DescribeImportSnapshotTasksRequest &request)
Definition EC2Waiter.h:349
Aws::Utils::WaiterOutcome< Model::DescribeImagesOutcome > WaitUntilImageAvailable(const Model::DescribeImagesRequest &request)
Definition EC2Waiter.h:275
Aws::Utils::WaiterOutcome< Model::DescribeSecondaryNetworksOutcome > WaitUntilSecondaryNetworkCreateComplete(const Model::DescribeSecondaryNetworksRequest &request)
Definition EC2Waiter.h:721
Aws::Utils::WaiterOutcome< Model::DescribeKeyPairsOutcome > WaitUntilKeyPairExists(const Model::DescribeKeyPairsRequest &request)
Definition EC2Waiter.h:607
Aws::Utils::WaiterOutcome< Model::DescribeVpcPeeringConnectionsOutcome > WaitUntilVpcPeeringConnectionExists(const Model::DescribeVpcPeeringConnectionsRequest &request)
Definition EC2Waiter.h:1219
Aws::Utils::WaiterOutcome< Model::DescribeSecurityGroupVpcAssociationsOutcome > WaitUntilSecurityGroupVpcAssociationDisassociated(const Model::DescribeSecurityGroupVpcAssociationsRequest &request)
Definition EC2Waiter.h:914
Aws::Utils::WaiterOutcome< Model::DescribeInstancesOutcome > WaitUntilInstanceExists(const Model::DescribeInstancesRequest &request)
Definition EC2Waiter.h:380
Aws::Utils::WaiterOutcome< Model::DescribeInstancesOutcome > WaitUntilInstanceStopped(const Model::DescribeInstancesRequest &request)
Definition EC2Waiter.h:455
Aws::Utils::WaiterOutcome< Model::DescribeVpcPeeringConnectionsOutcome > WaitUntilVpcPeeringConnectionDeleted(const Model::DescribeVpcPeeringConnectionsRequest &request)
Definition EC2Waiter.h:1195
bool IsSuccess() const
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
Aws::Utils::Outcome< DescribeBundleTasksResponse, EC2Error > DescribeBundleTasksOutcome
Aws::Utils::Outcome< DescribeInstancesResponse, EC2Error > DescribeInstancesOutcome
Aws::Utils::Outcome< DescribeImagesResponse, EC2Error > DescribeImagesOutcome
Aws::Utils::Outcome< DescribeExportTasksResponse, EC2Error > DescribeExportTasksOutcome
Aws::Utils::Outcome< DescribeImportSnapshotTasksResponse, EC2Error > DescribeImportSnapshotTasksOutcome
Aws::Utils::Outcome< DescribeCustomerGatewaysResponse, EC2Error > DescribeCustomerGatewaysOutcome
Aws::Utils::Outcome< DescribeImageUsageReportsResponse, EC2Error > DescribeImageUsageReportsOutcome
Aws::Utils::Outcome< DescribeConversionTasksResponse, EC2Error > DescribeConversionTasksOutcome
Crt::Variant< int, bool, Aws::String > ExpectedValue
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
UniquePtr< T > MakeUnique(const char *allocationTag, ArgTypes &&... args)
std::vector< T, Aws::Allocator< T > > Vector