AWS SDK for C++

AWS SDK for C++ Version 1.11.788

Loading...
Searching...
No Matches
ElasticLoadBalancingv2Waiter.h
1
6#pragma once
7#include <aws/core/utils/Waiter.h>
8#include <aws/core/utils/memory/AWSMemory.h>
9#include <aws/elasticloadbalancingv2/ElasticLoadBalancingv2Client.h>
10#include <aws/elasticloadbalancingv2/model/DescribeLoadBalancersRequest.h>
11#include <aws/elasticloadbalancingv2/model/DescribeLoadBalancersResult.h>
12#include <aws/elasticloadbalancingv2/model/DescribeTargetHealthRequest.h>
13#include <aws/elasticloadbalancingv2/model/DescribeTargetHealthResult.h>
14#include <aws/elasticloadbalancingv2/model/LoadBalancerStateEnum.h>
15#include <aws/elasticloadbalancingv2/model/TargetHealthStateEnum.h>
16
17#include <algorithm>
18
19namespace Aws {
20namespace ElasticLoadBalancingv2 {
21
22template <typename DerivedClient = ElasticLoadBalancingv2Client>
24 public:
31 "LoadBalancerAvailableWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("active"),
32 [](const Model::DescribeLoadBalancersOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
33 if (!outcome.IsSuccess()) return false;
34 const auto& result = outcome.GetResult();
35 return std::all_of(result.GetLoadBalancers().begin(), result.GetLoadBalancers().end(), [&](const Model::LoadBalancer& item) {
36 return Model::LoadBalancerStateEnumMapper::GetNameForLoadBalancerStateEnum(item.GetState().GetCode()) ==
37 expected.get<Aws::String>();
38 });
39 }));
41 "LoadBalancerAvailableWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("provisioning"),
42 [](const Model::DescribeLoadBalancersOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
43 if (!outcome.IsSuccess()) return false;
44 const auto& result = outcome.GetResult();
45 return std::any_of(result.GetLoadBalancers().begin(), result.GetLoadBalancers().end(), [&](const Model::LoadBalancer& item) {
46 return Model::LoadBalancerStateEnumMapper::GetNameForLoadBalancerStateEnum(item.GetState().GetCode()) ==
47 expected.get<Aws::String>();
48 });
49 }));
51 "LoadBalancerAvailableWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("LoadBalancerNotFound")));
52
53 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeLoadBalancers(req); };
54 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilLoadBalancerAvailable");
55 return waiter.Wait(request);
56 }
57
63 acceptors.emplace_back(
64 Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("LoadBalancerExistsWaiter", Aws::Utils::WaiterState::SUCCESS, false));
65 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("LoadBalancerExistsWaiter", Aws::Utils::WaiterState::RETRY,
66 Aws::String("LoadBalancerNotFound")));
67
68 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeLoadBalancers(req); };
69 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilLoadBalancerExists");
70 return waiter.Wait(request);
71 }
72
79 "LoadBalancersDeletedWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("active"),
80 [](const Model::DescribeLoadBalancersOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
81 if (!outcome.IsSuccess()) return false;
82 const auto& result = outcome.GetResult();
83 return std::all_of(result.GetLoadBalancers().begin(), result.GetLoadBalancers().end(), [&](const Model::LoadBalancer& item) {
84 return Model::LoadBalancerStateEnumMapper::GetNameForLoadBalancerStateEnum(item.GetState().GetCode()) ==
85 expected.get<Aws::String>();
86 });
87 }));
89 "LoadBalancersDeletedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("LoadBalancerNotFound")));
90
91 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeLoadBalancers(req); };
92 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilLoadBalancersDeleted");
93 return waiter.Wait(request);
94 }
95
102 "TargetDeregisteredWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("InvalidTarget")));
104 "TargetDeregisteredWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("unused"),
105 [](const Model::DescribeTargetHealthOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
106 if (!outcome.IsSuccess()) return false;
107 const auto& result = outcome.GetResult();
108 return std::all_of(result.GetTargetHealthDescriptions().begin(), result.GetTargetHealthDescriptions().end(),
109 [&](const Model::TargetHealthDescription& item) {
110 return Model::TargetHealthStateEnumMapper::GetNameForTargetHealthStateEnum(
111 item.GetTargetHealth().GetState()) == expected.get<Aws::String>();
112 });
113 }));
114
115 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeTargetHealth(req); };
116 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilTargetDeregistered");
117 return waiter.Wait(request);
118 }
119
121 const Model::DescribeTargetHealthRequest& request) {
122 using OutcomeT = Model::DescribeTargetHealthOutcome;
123 using RequestT = Model::DescribeTargetHealthRequest;
126 "TargetInServiceWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("healthy"),
127 [](const Model::DescribeTargetHealthOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
128 if (!outcome.IsSuccess()) return false;
129 const auto& result = outcome.GetResult();
130 return std::all_of(result.GetTargetHealthDescriptions().begin(), result.GetTargetHealthDescriptions().end(),
131 [&](const Model::TargetHealthDescription& item) {
132 return Model::TargetHealthStateEnumMapper::GetNameForTargetHealthStateEnum(
133 item.GetTargetHealth().GetState()) == expected.get<Aws::String>();
134 });
135 }));
136 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("TargetInServiceWaiter", Aws::Utils::WaiterState::RETRY,
137 Aws::String("InvalidInstance")));
138
139 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeTargetHealth(req); };
140 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilTargetInService");
141 return waiter.Wait(request);
142 }
143};
144} // namespace ElasticLoadBalancingv2
145} // namespace Aws
Aws::Utils::WaiterOutcome< Model::DescribeLoadBalancersOutcome > WaitUntilLoadBalancerAvailable(const Model::DescribeLoadBalancersRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeTargetHealthOutcome > WaitUntilTargetDeregistered(const Model::DescribeTargetHealthRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeTargetHealthOutcome > WaitUntilTargetInService(const Model::DescribeTargetHealthRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeLoadBalancersOutcome > WaitUntilLoadBalancerExists(const Model::DescribeLoadBalancersRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeLoadBalancersOutcome > WaitUntilLoadBalancersDeleted(const Model::DescribeLoadBalancersRequest &request)
bool IsSuccess() const
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
Aws::Utils::Outcome< DescribeLoadBalancersResult, ElasticLoadBalancingv2Error > DescribeLoadBalancersOutcome
Aws::Utils::Outcome< DescribeTargetHealthResult, ElasticLoadBalancingv2Error > DescribeTargetHealthOutcome
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