AWS SDK for C++

AWS SDK for C++ Version 1.11.788

Loading...
Searching...
No Matches
EMRWaiter.h
1
6#pragma once
7#include <aws/core/utils/Waiter.h>
8#include <aws/core/utils/memory/AWSMemory.h>
9#include <aws/elasticmapreduce/EMRClient.h>
10#include <aws/elasticmapreduce/model/ClusterState.h>
11#include <aws/elasticmapreduce/model/DescribeClusterRequest.h>
12#include <aws/elasticmapreduce/model/DescribeClusterResult.h>
13#include <aws/elasticmapreduce/model/DescribeStepRequest.h>
14#include <aws/elasticmapreduce/model/DescribeStepResult.h>
15#include <aws/elasticmapreduce/model/StepState.h>
16
17#include <algorithm>
18
19namespace Aws {
20namespace EMR {
21
22template <typename DerivedClient = EMRClient>
23class EMRWaiter {
24 public:
26 using OutcomeT = Model::DescribeClusterOutcome;
27 using RequestT = Model::DescribeClusterRequest;
30 "ClusterRunningWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("RUNNING"),
31 [](const Model::DescribeClusterOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
32 if (!outcome.IsSuccess()) return false;
33 const auto& result = outcome.GetResult();
34 return Model::ClusterStateMapper::GetNameForClusterState(result.GetCluster().GetStatus().GetState()) ==
35 expected.get<Aws::String>();
36 }));
38 "ClusterRunningWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("WAITING"),
39 [](const Model::DescribeClusterOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
40 if (!outcome.IsSuccess()) return false;
41 const auto& result = outcome.GetResult();
42 return Model::ClusterStateMapper::GetNameForClusterState(result.GetCluster().GetStatus().GetState()) ==
43 expected.get<Aws::String>();
44 }));
46 "ClusterRunningWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("TERMINATING"),
47 [](const Model::DescribeClusterOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
48 if (!outcome.IsSuccess()) return false;
49 const auto& result = outcome.GetResult();
50 return Model::ClusterStateMapper::GetNameForClusterState(result.GetCluster().GetStatus().GetState()) ==
51 expected.get<Aws::String>();
52 }));
54 "ClusterRunningWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("TERMINATED"),
55 [](const Model::DescribeClusterOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
56 if (!outcome.IsSuccess()) return false;
57 const auto& result = outcome.GetResult();
58 return Model::ClusterStateMapper::GetNameForClusterState(result.GetCluster().GetStatus().GetState()) ==
59 expected.get<Aws::String>();
60 }));
62 "ClusterRunningWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("TERMINATED_WITH_ERRORS"),
63 [](const Model::DescribeClusterOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
64 if (!outcome.IsSuccess()) return false;
65 const auto& result = outcome.GetResult();
66 return Model::ClusterStateMapper::GetNameForClusterState(result.GetCluster().GetStatus().GetState()) ==
67 expected.get<Aws::String>();
68 }));
69
70 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeCluster(req); };
71 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(30, 4, std::move(acceptors), operation, "WaitUntilClusterRunning");
72 return waiter.Wait(request);
73 }
74
76 using OutcomeT = Model::DescribeClusterOutcome;
77 using RequestT = Model::DescribeClusterRequest;
80 "ClusterTerminatedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("TERMINATED"),
81 [](const Model::DescribeClusterOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
82 if (!outcome.IsSuccess()) return false;
83 const auto& result = outcome.GetResult();
84 return Model::ClusterStateMapper::GetNameForClusterState(result.GetCluster().GetStatus().GetState()) ==
85 expected.get<Aws::String>();
86 }));
88 "ClusterTerminatedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("TERMINATED_WITH_ERRORS"),
89 [](const Model::DescribeClusterOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
90 if (!outcome.IsSuccess()) return false;
91 const auto& result = outcome.GetResult();
92 return Model::ClusterStateMapper::GetNameForClusterState(result.GetCluster().GetStatus().GetState()) ==
93 expected.get<Aws::String>();
94 }));
95
96 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeCluster(req); };
97 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(30, 4, std::move(acceptors), operation, "WaitUntilClusterTerminated");
98 return waiter.Wait(request);
99 }
100
102 using OutcomeT = Model::DescribeStepOutcome;
103 using RequestT = Model::DescribeStepRequest;
106 "StepCompleteWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("COMPLETED"),
107 [](const Model::DescribeStepOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
108 if (!outcome.IsSuccess()) return false;
109 const auto& result = outcome.GetResult();
110 return Model::StepStateMapper::GetNameForStepState(result.GetStep().GetStatus().GetState()) == expected.get<Aws::String>();
111 }));
113 "StepCompleteWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("FAILED"),
114 [](const Model::DescribeStepOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
115 if (!outcome.IsSuccess()) return false;
116 const auto& result = outcome.GetResult();
117 return Model::StepStateMapper::GetNameForStepState(result.GetStep().GetStatus().GetState()) == expected.get<Aws::String>();
118 }));
120 "StepCompleteWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("CANCELLED"),
121 [](const Model::DescribeStepOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
122 if (!outcome.IsSuccess()) return false;
123 const auto& result = outcome.GetResult();
124 return Model::StepStateMapper::GetNameForStepState(result.GetStep().GetStatus().GetState()) == expected.get<Aws::String>();
125 }));
126
127 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeStep(req); };
128 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(30, 4, std::move(acceptors), operation, "WaitUntilStepComplete");
129 return waiter.Wait(request);
130 }
131};
132} // namespace EMR
133} // namespace Aws
Aws::Utils::WaiterOutcome< Model::DescribeStepOutcome > WaitUntilStepComplete(const Model::DescribeStepRequest &request)
Definition EMRWaiter.h:101
Aws::Utils::WaiterOutcome< Model::DescribeClusterOutcome > WaitUntilClusterRunning(const Model::DescribeClusterRequest &request)
Definition EMRWaiter.h:25
Aws::Utils::WaiterOutcome< Model::DescribeClusterOutcome > WaitUntilClusterTerminated(const Model::DescribeClusterRequest &request)
Definition EMRWaiter.h:75
bool IsSuccess() const
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
AWS_EMR_API Aws::String GetNameForClusterState(ClusterState value)
AWS_EMR_API Aws::String GetNameForStepState(StepState value)
Aws::Utils::Outcome< DescribeClusterResult, EMRError > DescribeClusterOutcome
Aws::Utils::Outcome< DescribeStepResult, EMRError > DescribeStepOutcome
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