AWS SDK for C++

AWS SDK for C++ Version 1.11.776

Loading...
Searching...
No Matches
AutoScalingWaiter.h
1
6#pragma once
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>
12
13#include <algorithm>
14
15namespace Aws {
16namespace AutoScaling {
17
18template <typename DerivedClient = AutoScalingClient>
20 public:
27 "GroupExistsWaiter", Aws::Utils::WaiterState::SUCCESS, true,
28 [](const Model::DescribeAutoScalingGroupsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
29 if (!outcome.IsSuccess()) return false;
30 const auto& result = outcome.GetResult();
31 return (result.GetAutoScalingGroups().size() > 0) == expected.get<bool>();
32 }));
34 "GroupExistsWaiter", Aws::Utils::WaiterState::RETRY, false,
35 [](const Model::DescribeAutoScalingGroupsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
36 if (!outcome.IsSuccess()) return false;
37 const auto& result = outcome.GetResult();
38 return (result.GetAutoScalingGroups().size() > 0) == expected.get<bool>();
39 }));
40
41 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeAutoScalingGroups(req); };
42 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(5, 24, std::move(acceptors), operation, "WaitUntilGroupExists");
43 return waiter.Wait(request);
44 }
45
52 "GroupInServiceWaiter", Aws::Utils::WaiterState::SUCCESS, false,
53 [](const Model::DescribeAutoScalingGroupsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
54 if (!outcome.IsSuccess()) return false;
55 const auto& result = outcome.GetResult();
56 return std::any_of(
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");
60 }) >= item.GetMinSize());
61 }) == expected.get<bool>();
62 }));
64 "GroupInServiceWaiter", Aws::Utils::WaiterState::RETRY, true,
65 [](const Model::DescribeAutoScalingGroupsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
66 if (!outcome.IsSuccess()) return false;
67 const auto& result = outcome.GetResult();
68 return std::any_of(
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>();
74 }));
75
76 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeAutoScalingGroups(req); };
77 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilGroupInService");
78 return waiter.Wait(request);
79 }
80
87 "GroupNotExistsWaiter", Aws::Utils::WaiterState::SUCCESS, false,
88 [](const Model::DescribeAutoScalingGroupsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
89 if (!outcome.IsSuccess()) return false;
90 const auto& result = outcome.GetResult();
91 return (result.GetAutoScalingGroups().size() > 0) == expected.get<bool>();
92 }));
94 "GroupNotExistsWaiter", Aws::Utils::WaiterState::RETRY, true,
95 [](const Model::DescribeAutoScalingGroupsOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
96 if (!outcome.IsSuccess()) return false;
97 const auto& result = outcome.GetResult();
98 return (result.GetAutoScalingGroups().size() > 0) == expected.get<bool>();
99 }));
100
101 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeAutoScalingGroups(req); };
102 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(15, 8, std::move(acceptors), operation, "WaitUntilGroupNotExists");
103 return waiter.Wait(request);
104 }
105};
106} // namespace AutoScaling
107} // namespace Aws
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)
bool IsSuccess() const
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