7#include <aws/autoscaling/AutoScalingClient.h>
8#include <aws/autoscaling/model/DescribeAutoScalingGroupsRequest.h>
9#include <aws/autoscaling/model/DescribeAutoScalingGroupsResult.h>
10#include <aws/core/utils/Waiter.h>
11#include <aws/core/utils/memory/AWSMemory.h>
16namespace AutoScaling {
18template <
typename DerivedClient = AutoScalingClient>
27 "GroupExistsWaiter", Aws::Utils::WaiterState::SUCCESS,
true,
31 return (result.GetAutoScalingGroups().size() > 0) == expected.get<
bool>();
34 "GroupExistsWaiter", Aws::Utils::WaiterState::RETRY,
false,
38 return (result.GetAutoScalingGroups().size() > 0) == expected.get<
bool>();
41 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeAutoScalingGroups(req); };
43 return waiter.
Wait(request);
52 "GroupInServiceWaiter", Aws::Utils::WaiterState::SUCCESS,
false,
57 result.GetAutoScalingGroups().begin(), result.GetAutoScalingGroups().end(), [](
const Model::AutoScalingGroup& item) {
58 return !(std::count_if(item.GetInstances().begin(), item.GetInstances().end(), [](const Model::Instance& inner) {
59 return (Model::LifecycleStateMapper::GetNameForLifecycleState(inner.GetLifecycleState()) ==
"InService");
61 }) == expected.get<
bool>();
64 "GroupInServiceWaiter", Aws::Utils::WaiterState::RETRY,
true,
69 result.GetAutoScalingGroups().begin(), result.GetAutoScalingGroups().end(), [](
const Model::AutoScalingGroup& item) {
70 return !(std::count_if(item.GetInstances().begin(), item.GetInstances().end(), [](const Model::Instance& inner) {
71 return (Model::LifecycleStateMapper::GetNameForLifecycleState(inner.GetLifecycleState()) ==
"InService");
72 }) >= item.GetMinSize());
73 }) == expected.get<
bool>();
76 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeAutoScalingGroups(req); };
78 return waiter.Wait(request);
87 "GroupNotExistsWaiter", Aws::Utils::WaiterState::SUCCESS,
false,
91 return (result.GetAutoScalingGroups().size() > 0) == expected.get<
bool>();
94 "GroupNotExistsWaiter", Aws::Utils::WaiterState::RETRY,
true,
98 return (result.GetAutoScalingGroups().size() > 0) == expected.get<
bool>();
101 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->DescribeAutoScalingGroups(req); };
103 return waiter.
Wait(request);
Aws::Utils::WaiterOutcome< Model::DescribeAutoScalingGroupsOutcome > WaitUntilGroupNotExists(const Model::DescribeAutoScalingGroupsRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeAutoScalingGroupsOutcome > WaitUntilGroupExists(const Model::DescribeAutoScalingGroupsRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeAutoScalingGroupsOutcome > WaitUntilGroupInService(const Model::DescribeAutoScalingGroupsRequest &request)
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
Aws::Utils::Outcome< DescribeAutoScalingGroupsResult, AutoScalingError > DescribeAutoScalingGroupsOutcome
Crt::Variant< int, bool, Aws::String > ExpectedValue
UniquePtr< T > MakeUnique(const char *allocationTag, ArgTypes &&... args)
std::vector< T, Aws::Allocator< T > > Vector