AWS SDK for C++

AWS SDK for C++ Version 1.11.787

Loading...
Searching...
No Matches
RedshiftWaiter.h
1
6#pragma once
7#include <aws/core/utils/Waiter.h>
8#include <aws/core/utils/memory/AWSMemory.h>
9#include <aws/redshift/RedshiftClient.h>
10#include <aws/redshift/model/DescribeClusterSnapshotsRequest.h>
11#include <aws/redshift/model/DescribeClusterSnapshotsResult.h>
12#include <aws/redshift/model/DescribeClustersRequest.h>
13#include <aws/redshift/model/DescribeClustersResult.h>
14
15#include <algorithm>
16
17namespace Aws {
18namespace Redshift {
19
20template <typename DerivedClient = RedshiftClient>
22 public:
24 using OutcomeT = Model::DescribeClustersOutcome;
25 using RequestT = Model::DescribeClustersRequest;
28 "ClusterAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("available"),
29 [](const Model::DescribeClustersOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
30 if (!outcome.IsSuccess()) return false;
31 const auto& result = outcome.GetResult();
32 return std::all_of(result.GetClusters().begin(), result.GetClusters().end(),
33 [&](const Model::Cluster& item) { return item.GetClusterStatus() == expected.get<Aws::String>(); });
34 }));
36 "ClusterAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("deleting"),
37 [](const Model::DescribeClustersOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
38 if (!outcome.IsSuccess()) return false;
39 const auto& result = outcome.GetResult();
40 return std::any_of(result.GetClusters().begin(), result.GetClusters().end(),
41 [&](const Model::Cluster& item) { return item.GetClusterStatus() == expected.get<Aws::String>(); });
42 }));
43 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("ClusterAvailableWaiter", Aws::Utils::WaiterState::RETRY,
44 Aws::String("ClusterNotFound")));
45
46 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeClusters(req); };
47 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(60, 2, std::move(acceptors), operation, "WaitUntilClusterAvailable");
48 return waiter.Wait(request);
49 }
50
52 using OutcomeT = Model::DescribeClustersOutcome;
53 using RequestT = Model::DescribeClustersRequest;
55 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("ClusterDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
56 Aws::String("ClusterNotFound")));
58 "ClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("creating"),
59 [](const Model::DescribeClustersOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
60 if (!outcome.IsSuccess()) return false;
61 const auto& result = outcome.GetResult();
62 return std::any_of(result.GetClusters().begin(), result.GetClusters().end(),
63 [&](const Model::Cluster& item) { return item.GetClusterStatus() == expected.get<Aws::String>(); });
64 }));
66 "ClusterDeletedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("modifying"),
67 [](const Model::DescribeClustersOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
68 if (!outcome.IsSuccess()) return false;
69 const auto& result = outcome.GetResult();
70 return std::any_of(result.GetClusters().begin(), result.GetClusters().end(),
71 [&](const Model::Cluster& item) { return item.GetClusterStatus() == expected.get<Aws::String>(); });
72 }));
73
74 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeClusters(req); };
75 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(60, 2, std::move(acceptors), operation, "WaitUntilClusterDeleted");
76 return waiter.Wait(request);
77 }
78
80 using OutcomeT = Model::DescribeClustersOutcome;
81 using RequestT = Model::DescribeClustersRequest;
84 "ClusterRestoredWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("completed"),
85 [](const Model::DescribeClustersOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
86 if (!outcome.IsSuccess()) return false;
87 const auto& result = outcome.GetResult();
88 return std::all_of(result.GetClusters().begin(), result.GetClusters().end(), [&](const Model::Cluster& item) {
89 return item.GetRestoreStatus().GetStatus() == expected.get<Aws::String>();
90 });
91 }));
93 "ClusterRestoredWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("deleting"),
94 [](const Model::DescribeClustersOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
95 if (!outcome.IsSuccess()) return false;
96 const auto& result = outcome.GetResult();
97 return std::any_of(result.GetClusters().begin(), result.GetClusters().end(),
98 [&](const Model::Cluster& item) { return item.GetClusterStatus() == expected.get<Aws::String>(); });
99 }));
100
101 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeClusters(req); };
102 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(60, 2, std::move(acceptors), operation, "WaitUntilClusterRestored");
103 return waiter.Wait(request);
104 }
105
112 "SnapshotAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("available"),
113 [](const Model::DescribeClusterSnapshotsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
114 if (!outcome.IsSuccess()) return false;
115 const auto& result = outcome.GetResult();
116 return std::all_of(result.GetSnapshots().begin(), result.GetSnapshots().end(),
117 [&](const Model::Snapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
118 }));
120 "SnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("failed"),
121 [](const Model::DescribeClusterSnapshotsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
122 if (!outcome.IsSuccess()) return false;
123 const auto& result = outcome.GetResult();
124 return std::any_of(result.GetSnapshots().begin(), result.GetSnapshots().end(),
125 [&](const Model::Snapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
126 }));
128 "SnapshotAvailableWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("deleted"),
129 [](const Model::DescribeClusterSnapshotsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
130 if (!outcome.IsSuccess()) return false;
131 const auto& result = outcome.GetResult();
132 return std::any_of(result.GetSnapshots().begin(), result.GetSnapshots().end(),
133 [&](const Model::Snapshot& item) { return item.GetStatus() == expected.get<Aws::String>(); });
134 }));
135
136 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeClusterSnapshots(req); };
137 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilSnapshotAvailable");
138 return waiter.Wait(request);
139 }
140};
141} // namespace Redshift
142} // namespace Aws
Aws::Utils::WaiterOutcome< Model::DescribeClustersOutcome > WaitUntilClusterRestored(const Model::DescribeClustersRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeClustersOutcome > WaitUntilClusterDeleted(const Model::DescribeClustersRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeClustersOutcome > WaitUntilClusterAvailable(const Model::DescribeClustersRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeClusterSnapshotsOutcome > WaitUntilSnapshotAvailable(const Model::DescribeClusterSnapshotsRequest &request)
bool IsSuccess() const
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
Aws::Utils::Outcome< DescribeClustersResult, RedshiftError > DescribeClustersOutcome
Aws::Utils::Outcome< DescribeClusterSnapshotsResult, RedshiftError > DescribeClusterSnapshotsOutcome
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