7#include <aws/core/utils/Waiter.h>
8#include <aws/core/utils/memory/AWSMemory.h>
9#include <aws/elasticache/ElastiCacheClient.h>
10#include <aws/elasticache/model/DescribeCacheClustersRequest.h>
11#include <aws/elasticache/model/DescribeCacheClustersResult.h>
12#include <aws/elasticache/model/DescribeReplicationGroupsRequest.h>
13#include <aws/elasticache/model/DescribeReplicationGroupsResult.h>
18namespace ElastiCache {
20template <
typename DerivedClient = ElastiCacheClient>
29 "CacheClusterAvailableWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"available"),
33 return std::all_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
34 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
37 "CacheClusterAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleted"),
41 return std::any_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
42 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
45 "CacheClusterAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleting"),
49 return std::any_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
50 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
53 "CacheClusterAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-network"),
57 return std::any_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
58 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
61 "CacheClusterAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"restore-failed"),
65 return std::any_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
66 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
69 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeCacheClusters(req); };
71 return waiter.
Wait(request);
80 "CacheClusterDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"deleted"),
84 return std::all_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
85 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
88 "CacheClusterDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"CacheClusterNotFound")));
90 "CacheClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"available"),
94 return std::any_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
95 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
98 "CacheClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"creating"),
101 const auto& result = outcome.
GetResult();
102 return std::any_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
103 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
106 "CacheClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"incompatible-network"),
109 const auto& result = outcome.
GetResult();
110 return std::any_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
111 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
114 "CacheClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"modifying"),
117 const auto& result = outcome.
GetResult();
118 return std::any_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
119 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
122 "CacheClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"restore-failed"),
125 const auto& result = outcome.
GetResult();
126 return std::any_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
127 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
130 "CacheClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"snapshotting"),
133 const auto& result = outcome.
GetResult();
134 return std::any_of(result.GetCacheClusters().begin(), result.GetCacheClusters().end(),
135 [&](
const Model::CacheCluster& item) { return item.GetCacheClusterStatus() == expected.get<Aws::String>(); });
138 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeCacheClusters(req); };
140 return waiter.
Wait(request);
149 "ReplicationGroupAvailableWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"available"),
152 const auto& result = outcome.
GetResult();
153 return std::all_of(result.GetReplicationGroups().begin(), result.GetReplicationGroups().end(),
157 "ReplicationGroupAvailableWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"deleted"),
160 const auto& result = outcome.
GetResult();
161 return std::any_of(result.GetReplicationGroups().begin(), result.GetReplicationGroups().end(),
165 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeReplicationGroups(req); };
167 return waiter.
Wait(request);
176 "ReplicationGroupDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"deleted"),
179 const auto& result = outcome.
GetResult();
180 return std::all_of(result.GetReplicationGroups().begin(), result.GetReplicationGroups().end(),
184 "ReplicationGroupDeletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"available"),
187 const auto& result = outcome.
GetResult();
188 return std::any_of(result.GetReplicationGroups().begin(), result.GetReplicationGroups().end(),
192 "ReplicationGroupDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"ReplicationGroupNotFoundFault")));
194 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeReplicationGroups(req); };
196 return waiter.
Wait(request);
Aws::Utils::WaiterOutcome< Model::DescribeReplicationGroupsOutcome > WaitUntilReplicationGroupAvailable(const Model::DescribeReplicationGroupsRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeCacheClustersOutcome > WaitUntilCacheClusterDeleted(const Model::DescribeCacheClustersRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeReplicationGroupsOutcome > WaitUntilReplicationGroupDeleted(const Model::DescribeReplicationGroupsRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeCacheClustersOutcome > WaitUntilCacheClusterAvailable(const Model::DescribeCacheClustersRequest &request)
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
Aws::Utils::Outcome< DescribeReplicationGroupsResult, ElastiCacheError > DescribeReplicationGroupsOutcome
Aws::Utils::Outcome< DescribeCacheClustersResult, ElastiCacheError > DescribeCacheClustersOutcome
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