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>
20namespace ElasticLoadBalancingv2 {
22template <
typename DerivedClient = ElasticLoadBalancingv2Client>
31 "LoadBalancerAvailableWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"active"),
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>();
41 "LoadBalancerAvailableWaiter", Aws::Utils::WaiterState::RETRY,
Aws::String(
"provisioning"),
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>();
51 "LoadBalancerAvailableWaiter", Aws::Utils::WaiterState::RETRY,
Aws::String(
"LoadBalancerNotFound")));
53 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeLoadBalancers(req); };
55 return waiter.
Wait(request);
63 acceptors.emplace_back(
68 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeLoadBalancers(req); };
70 return waiter.
Wait(request);
79 "LoadBalancersDeletedWaiter", Aws::Utils::WaiterState::RETRY,
Aws::String(
"active"),
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>();
89 "LoadBalancersDeletedWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"LoadBalancerNotFound")));
91 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeLoadBalancers(req); };
93 return waiter.
Wait(request);
102 "TargetDeregisteredWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"InvalidTarget")));
104 "TargetDeregisteredWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"unused"),
107 const auto& result = outcome.
GetResult();
108 return std::all_of(result.GetTargetHealthDescriptions().begin(), result.GetTargetHealthDescriptions().end(),
110 return Model::TargetHealthStateEnumMapper::GetNameForTargetHealthStateEnum(
111 item.GetTargetHealth().GetState()) == expected.get<Aws::String>();
115 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeTargetHealth(req); };
117 return waiter.
Wait(request);
126 "TargetInServiceWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"healthy"),
129 const auto& result = outcome.
GetResult();
130 return std::all_of(result.GetTargetHealthDescriptions().begin(), result.GetTargetHealthDescriptions().end(),
132 return Model::TargetHealthStateEnumMapper::GetNameForTargetHealthStateEnum(
133 item.GetTargetHealth().GetState()) == expected.get<Aws::String>();
139 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeTargetHealth(req); };
141 return waiter.
Wait(request);
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)
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