AWS SDK for C++

AWS SDK for C++ Version 1.11.788

Loading...
Searching...
No Matches
ElasticLoadBalancingWaiter.h
1
6#pragma once
7#include <aws/core/utils/Waiter.h>
8#include <aws/core/utils/memory/AWSMemory.h>
9#include <aws/elasticloadbalancing/ElasticLoadBalancingClient.h>
10#include <aws/elasticloadbalancing/model/DescribeInstanceHealthRequest.h>
11#include <aws/elasticloadbalancing/model/DescribeInstanceHealthResult.h>
12
13#include <algorithm>
14
15namespace Aws {
16namespace ElasticLoadBalancing {
17
18template <typename DerivedClient = ElasticLoadBalancingClient>
20 public:
27 "AnyInstanceInServiceWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("InService"),
28 [](const Model::DescribeInstanceHealthOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
29 if (!outcome.IsSuccess()) return false;
30 const auto& result = outcome.GetResult();
31 return std::any_of(result.GetInstanceStates().begin(), result.GetInstanceStates().end(),
32 [&](const Model::InstanceState& item) { return item.GetState() == expected.get<Aws::String>(); });
33 }));
34
35 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeInstanceHealth(req); };
36 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilAnyInstanceInService");
37 return waiter.Wait(request);
38 }
39
46 "InstanceDeregisteredWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("OutOfService"),
47 [](const Model::DescribeInstanceHealthOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
48 if (!outcome.IsSuccess()) return false;
49 const auto& result = outcome.GetResult();
50 return std::all_of(result.GetInstanceStates().begin(), result.GetInstanceStates().end(),
51 [&](const Model::InstanceState& item) { return item.GetState() == expected.get<Aws::String>(); });
52 }));
54 "InstanceDeregisteredWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("InvalidInstance")));
55
56 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeInstanceHealth(req); };
57 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilInstanceDeregistered");
58 return waiter.Wait(request);
59 }
60
67 "InstanceInServiceWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("InService"),
68 [](const Model::DescribeInstanceHealthOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
69 if (!outcome.IsSuccess()) return false;
70 const auto& result = outcome.GetResult();
71 return std::all_of(result.GetInstanceStates().begin(), result.GetInstanceStates().end(),
72 [&](const Model::InstanceState& item) { return item.GetState() == expected.get<Aws::String>(); });
73 }));
74 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("InstanceInServiceWaiter", Aws::Utils::WaiterState::RETRY,
75 Aws::String("InvalidInstance")));
76
77 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeInstanceHealth(req); };
78 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilInstanceInService");
79 return waiter.Wait(request);
80 }
81};
82} // namespace ElasticLoadBalancing
83} // namespace Aws
Aws::Utils::WaiterOutcome< Model::DescribeInstanceHealthOutcome > WaitUntilInstanceDeregistered(const Model::DescribeInstanceHealthRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeInstanceHealthOutcome > WaitUntilInstanceInService(const Model::DescribeInstanceHealthRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeInstanceHealthOutcome > WaitUntilAnyInstanceInService(const Model::DescribeInstanceHealthRequest &request)
bool IsSuccess() const
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
Aws::Utils::Outcome< DescribeInstanceHealthResult, ElasticLoadBalancingError > DescribeInstanceHealthOutcome
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