7#include <aws/core/utils/Waiter.h>
8#include <aws/core/utils/memory/AWSMemory.h>
9#include <aws/rds/RDSClient.h>
10#include <aws/rds/model/DescribeDBClusterSnapshotsRequest.h>
11#include <aws/rds/model/DescribeDBClusterSnapshotsResult.h>
12#include <aws/rds/model/DescribeDBClustersRequest.h>
13#include <aws/rds/model/DescribeDBClustersResult.h>
14#include <aws/rds/model/DescribeDBInstancesRequest.h>
15#include <aws/rds/model/DescribeDBInstancesResult.h>
16#include <aws/rds/model/DescribeDBSnapshotsRequest.h>
17#include <aws/rds/model/DescribeDBSnapshotsResult.h>
18#include <aws/rds/model/DescribeTenantDatabasesRequest.h>
19#include <aws/rds/model/DescribeTenantDatabasesResult.h>
26template <
typename DerivedClient = RDSClient>
34 "DBClusterAvailableWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"available"),
38 return std::all_of(result.GetDBClusters().begin(), result.GetDBClusters().end(),
39 [&](
const Model::DBCluster& item) { return item.GetStatus() == expected.get<Aws::String>(); });
42 "DBClusterAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleted"),
46 return std::any_of(result.GetDBClusters().begin(), result.GetDBClusters().end(),
47 [&](
const Model::DBCluster& item) { return item.GetStatus() == expected.get<Aws::String>(); });
50 "DBClusterAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleting"),
54 return std::any_of(result.GetDBClusters().begin(), result.GetDBClusters().end(),
55 [&](
const Model::DBCluster& item) { return item.GetStatus() == expected.get<Aws::String>(); });
58 "DBClusterAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"failed"),
62 return std::any_of(result.GetDBClusters().begin(), result.GetDBClusters().end(),
63 [&](
const Model::DBCluster& item) { return item.GetStatus() == expected.get<Aws::String>(); });
66 "DBClusterAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-restore"),
70 return std::any_of(result.GetDBClusters().begin(), result.GetDBClusters().end(),
71 [&](
const Model::DBCluster& item) { return item.GetStatus() == expected.get<Aws::String>(); });
74 "DBClusterAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-parameters"),
78 return std::any_of(result.GetDBClusters().begin(), result.GetDBClusters().end(),
79 [&](
const Model::DBCluster& item) { return item.GetStatus() == expected.get<Aws::String>(); });
82 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeDBClusters(req); };
84 return waiter.
Wait(request);
92 "DBClusterDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
true,
96 return (result.GetDBClusters().size() == 0) == expected.get<
bool>();
101 "DBClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"creating"),
104 const auto& result = outcome.
GetResult();
105 return std::any_of(result.GetDBClusters().begin(), result.GetDBClusters().end(),
106 [&](
const Model::DBCluster& item) { return item.GetStatus() == expected.get<Aws::String>(); });
109 "DBClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"modifying"),
112 const auto& result = outcome.
GetResult();
113 return std::any_of(result.GetDBClusters().begin(), result.GetDBClusters().end(),
114 [&](
const Model::DBCluster& item) { return item.GetStatus() == expected.get<Aws::String>(); });
117 "DBClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"rebooting"),
120 const auto& result = outcome.
GetResult();
121 return std::any_of(result.GetDBClusters().begin(), result.GetDBClusters().end(),
122 [&](
const Model::DBCluster& item) { return item.GetStatus() == expected.get<Aws::String>(); });
125 "DBClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"resetting-master-credentials"),
128 const auto& result = outcome.
GetResult();
129 return std::any_of(result.GetDBClusters().begin(), result.GetDBClusters().end(),
130 [&](
const Model::DBCluster& item) { return item.GetStatus() == expected.get<Aws::String>(); });
133 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeDBClusters(req); };
135 return waiter.
Wait(request);
144 "DBClusterSnapshotAvailableWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"available"),
147 const auto& result = outcome.
GetResult();
148 return std::all_of(result.GetDBClusterSnapshots().begin(), result.GetDBClusterSnapshots().end(),
152 "DBClusterSnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleted"),
155 const auto& result = outcome.
GetResult();
156 return std::any_of(result.GetDBClusterSnapshots().begin(), result.GetDBClusterSnapshots().end(),
160 "DBClusterSnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleting"),
163 const auto& result = outcome.
GetResult();
164 return std::any_of(result.GetDBClusterSnapshots().begin(), result.GetDBClusterSnapshots().end(),
168 "DBClusterSnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"failed"),
171 const auto& result = outcome.
GetResult();
172 return std::any_of(result.GetDBClusterSnapshots().begin(), result.GetDBClusterSnapshots().end(),
176 "DBClusterSnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-restore"),
179 const auto& result = outcome.
GetResult();
180 return std::any_of(result.GetDBClusterSnapshots().begin(), result.GetDBClusterSnapshots().end(),
184 "DBClusterSnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-parameters"),
187 const auto& result = outcome.
GetResult();
188 return std::any_of(result.GetDBClusterSnapshots().begin(), result.GetDBClusterSnapshots().end(),
192 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeDBClusterSnapshots(req); };
194 return waiter.
Wait(request);
203 "DBClusterSnapshotDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
true,
206 const auto& result = outcome.
GetResult();
207 return (result.GetDBClusterSnapshots().size() == 0) == expected.get<
bool>();
210 "DBClusterSnapshotDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"DBClusterSnapshotNotFoundFault")));
212 "DBClusterSnapshotDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"creating"),
215 const auto& result = outcome.
GetResult();
216 return std::any_of(result.GetDBClusterSnapshots().begin(), result.GetDBClusterSnapshots().end(),
220 "DBClusterSnapshotDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"modifying"),
223 const auto& result = outcome.
GetResult();
224 return std::any_of(result.GetDBClusterSnapshots().begin(), result.GetDBClusterSnapshots().end(),
228 "DBClusterSnapshotDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"rebooting"),
231 const auto& result = outcome.
GetResult();
232 return std::any_of(result.GetDBClusterSnapshots().begin(), result.GetDBClusterSnapshots().end(),
236 "DBClusterSnapshotDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"resetting-master-credentials"),
239 const auto& result = outcome.
GetResult();
240 return std::any_of(result.GetDBClusterSnapshots().begin(), result.GetDBClusterSnapshots().end(),
244 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeDBClusterSnapshots(req); };
246 return waiter.
Wait(request);
255 "DBInstanceAvailableWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"available"),
258 const auto& result = outcome.
GetResult();
259 return std::all_of(result.GetDBInstances().begin(), result.GetDBInstances().end(),
260 [&](
const Model::DBInstance& item) { return item.GetDBInstanceStatus() == expected.get<Aws::String>(); });
263 "DBInstanceAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleted"),
266 const auto& result = outcome.
GetResult();
267 return std::any_of(result.GetDBInstances().begin(), result.GetDBInstances().end(),
268 [&](
const Model::DBInstance& item) { return item.GetDBInstanceStatus() == expected.get<Aws::String>(); });
271 "DBInstanceAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleting"),
274 const auto& result = outcome.
GetResult();
275 return std::any_of(result.GetDBInstances().begin(), result.GetDBInstances().end(),
276 [&](
const Model::DBInstance& item) { return item.GetDBInstanceStatus() == expected.get<Aws::String>(); });
279 "DBInstanceAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"failed"),
282 const auto& result = outcome.
GetResult();
283 return std::any_of(result.GetDBInstances().begin(), result.GetDBInstances().end(),
284 [&](
const Model::DBInstance& item) { return item.GetDBInstanceStatus() == expected.get<Aws::String>(); });
287 "DBInstanceAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-restore"),
290 const auto& result = outcome.
GetResult();
291 return std::any_of(result.GetDBInstances().begin(), result.GetDBInstances().end(),
292 [&](
const Model::DBInstance& item) { return item.GetDBInstanceStatus() == expected.get<Aws::String>(); });
295 "DBInstanceAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-parameters"),
298 const auto& result = outcome.
GetResult();
299 return std::any_of(result.GetDBInstances().begin(), result.GetDBInstances().end(),
300 [&](
const Model::DBInstance& item) { return item.GetDBInstanceStatus() == expected.get<Aws::String>(); });
303 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeDBInstances(req); };
305 return waiter.
Wait(request);
314 "DBInstanceDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
true,
317 const auto& result = outcome.
GetResult();
318 return (result.GetDBInstances().size() == 0) == expected.get<
bool>();
323 "DBInstanceDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"creating"),
326 const auto& result = outcome.
GetResult();
327 return std::any_of(result.GetDBInstances().begin(), result.GetDBInstances().end(),
328 [&](
const Model::DBInstance& item) { return item.GetDBInstanceStatus() == expected.get<Aws::String>(); });
331 "DBInstanceDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"modifying"),
334 const auto& result = outcome.
GetResult();
335 return std::any_of(result.GetDBInstances().begin(), result.GetDBInstances().end(),
336 [&](
const Model::DBInstance& item) { return item.GetDBInstanceStatus() == expected.get<Aws::String>(); });
339 "DBInstanceDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"rebooting"),
342 const auto& result = outcome.
GetResult();
343 return std::any_of(result.GetDBInstances().begin(), result.GetDBInstances().end(),
344 [&](
const Model::DBInstance& item) { return item.GetDBInstanceStatus() == expected.get<Aws::String>(); });
347 "DBInstanceDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"resetting-master-credentials"),
350 const auto& result = outcome.
GetResult();
351 return std::any_of(result.GetDBInstances().begin(), result.GetDBInstances().end(),
352 [&](
const Model::DBInstance& item) { return item.GetDBInstanceStatus() == expected.get<Aws::String>(); });
355 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeDBInstances(req); };
357 return waiter.
Wait(request);
366 "DBSnapshotAvailableWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"available"),
369 const auto& result = outcome.
GetResult();
370 return std::all_of(result.GetDBSnapshots().begin(), result.GetDBSnapshots().end(),
371 [&](
const Model::DBSnapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
374 "DBSnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleted"),
377 const auto& result = outcome.
GetResult();
378 return std::any_of(result.GetDBSnapshots().begin(), result.GetDBSnapshots().end(),
379 [&](
const Model::DBSnapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
382 "DBSnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleting"),
385 const auto& result = outcome.
GetResult();
386 return std::any_of(result.GetDBSnapshots().begin(), result.GetDBSnapshots().end(),
387 [&](
const Model::DBSnapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
390 "DBSnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"failed"),
393 const auto& result = outcome.
GetResult();
394 return std::any_of(result.GetDBSnapshots().begin(), result.GetDBSnapshots().end(),
395 [&](
const Model::DBSnapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
398 "DBSnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-restore"),
401 const auto& result = outcome.
GetResult();
402 return std::any_of(result.GetDBSnapshots().begin(), result.GetDBSnapshots().end(),
403 [&](
const Model::DBSnapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
406 "DBSnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-parameters"),
409 const auto& result = outcome.
GetResult();
410 return std::any_of(result.GetDBSnapshots().begin(), result.GetDBSnapshots().end(),
411 [&](
const Model::DBSnapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
414 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeDBSnapshots(req); };
416 return waiter.
Wait(request);
425 "DBSnapshotDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
true,
428 const auto& result = outcome.
GetResult();
429 return (result.GetDBSnapshots().size() == 0) == expected.get<
bool>();
434 "DBSnapshotDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"creating"),
437 const auto& result = outcome.
GetResult();
438 return std::any_of(result.GetDBSnapshots().begin(), result.GetDBSnapshots().end(),
439 [&](
const Model::DBSnapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
442 "DBSnapshotDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"modifying"),
445 const auto& result = outcome.
GetResult();
446 return std::any_of(result.GetDBSnapshots().begin(), result.GetDBSnapshots().end(),
447 [&](
const Model::DBSnapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
450 "DBSnapshotDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"rebooting"),
453 const auto& result = outcome.
GetResult();
454 return std::any_of(result.GetDBSnapshots().begin(), result.GetDBSnapshots().end(),
455 [&](
const Model::DBSnapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
458 "DBSnapshotDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"resetting-master-credentials"),
461 const auto& result = outcome.
GetResult();
462 return std::any_of(result.GetDBSnapshots().begin(), result.GetDBSnapshots().end(),
463 [&](
const Model::DBSnapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
466 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeDBSnapshots(req); };
468 return waiter.
Wait(request);
477 "TenantDatabaseAvailableWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"available"),
480 const auto& result = outcome.
GetResult();
481 return std::all_of(result.GetTenantDatabases().begin(), result.GetTenantDatabases().end(),
485 "TenantDatabaseAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleted"),
488 const auto& result = outcome.
GetResult();
489 return std::any_of(result.GetTenantDatabases().begin(), result.GetTenantDatabases().end(),
493 "TenantDatabaseAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-parameters"),
496 const auto& result = outcome.
GetResult();
497 return std::any_of(result.GetTenantDatabases().begin(), result.GetTenantDatabases().end(),
501 "TenantDatabaseAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-restore"),
504 const auto& result = outcome.
GetResult();
505 return std::any_of(result.GetTenantDatabases().begin(), result.GetTenantDatabases().end(),
509 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeTenantDatabases(req); };
511 return waiter.
Wait(request);
520 "TenantDatabaseDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
true,
523 const auto& result = outcome.
GetResult();
524 return (result.GetTenantDatabases().size() == 0) == expected.get<
bool>();
527 "TenantDatabaseDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"DBInstanceNotFoundFault")));
529 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeTenantDatabases(req); };
531 return waiter.
Wait(request);
Aws::Utils::WaiterOutcome< Model::DescribeDBSnapshotsOutcome > WaitUntilDBSnapshotDeleted(const Model::DescribeDBSnapshotsRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeDBClusterSnapshotsOutcome > WaitUntilDBClusterSnapshotDeleted(const Model::DescribeDBClusterSnapshotsRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeDBInstancesOutcome > WaitUntilDBInstanceAvailable(const Model::DescribeDBInstancesRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeDBClustersOutcome > WaitUntilDBClusterAvailable(const Model::DescribeDBClustersRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeDBClusterSnapshotsOutcome > WaitUntilDBClusterSnapshotAvailable(const Model::DescribeDBClusterSnapshotsRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeTenantDatabasesOutcome > WaitUntilTenantDatabaseDeleted(const Model::DescribeTenantDatabasesRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeDBClustersOutcome > WaitUntilDBClusterDeleted(const Model::DescribeDBClustersRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeDBSnapshotsOutcome > WaitUntilDBSnapshotAvailable(const Model::DescribeDBSnapshotsRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeTenantDatabasesOutcome > WaitUntilTenantDatabaseAvailable(const Model::DescribeTenantDatabasesRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeDBInstancesOutcome > WaitUntilDBInstanceDeleted(const Model::DescribeDBInstancesRequest &request)
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
Aws::Utils::Outcome< DescribeDBSnapshotsResult, RDSError > DescribeDBSnapshotsOutcome
Aws::Utils::Outcome< DescribeDBClustersResult, RDSError > DescribeDBClustersOutcome
Aws::Utils::Outcome< DescribeDBClusterSnapshotsResult, RDSError > DescribeDBClusterSnapshotsOutcome
Aws::Utils::Outcome< DescribeTenantDatabasesResult, RDSError > DescribeTenantDatabasesOutcome
Aws::Utils::Outcome< DescribeDBInstancesResult, RDSError > DescribeDBInstancesOutcome
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