AWS SDK for C++

AWS SDK for C++ Version 1.11.778

Loading...
Searching...
No Matches
TransferWaiter.h
1
6#pragma once
7#include <aws/awstransfer/TransferClient.h>
8#include <aws/awstransfer/model/DescribeServerRequest.h>
9#include <aws/awstransfer/model/DescribeServerResult.h>
10#include <aws/awstransfer/model/State.h>
11#include <aws/core/utils/Waiter.h>
12#include <aws/core/utils/memory/AWSMemory.h>
13
14#include <algorithm>
15
16namespace Aws {
17namespace Transfer {
18
19template <typename DerivedClient = TransferClient>
21 public:
23 using OutcomeT = Model::DescribeServerOutcome;
24 using RequestT = Model::DescribeServerRequest;
27 "ServerOfflineWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("OFFLINE"),
28 [](const Model::DescribeServerOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
29 if (!outcome.IsSuccess()) return false;
30 const auto& result = outcome.GetResult();
31 return Model::StateMapper::GetNameForState(result.GetServer().GetState()) == expected.get<Aws::String>();
32 }));
34 "ServerOfflineWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("STOP_FAILED"),
35 [](const Model::DescribeServerOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
36 if (!outcome.IsSuccess()) return false;
37 const auto& result = outcome.GetResult();
38 return Model::StateMapper::GetNameForState(result.GetServer().GetState()) == expected.get<Aws::String>();
39 }));
40
41 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeServer(req); };
42 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(30, 120, std::move(acceptors), operation, "WaitUntilServerOffline");
43 return waiter.Wait(request);
44 }
45
47 using OutcomeT = Model::DescribeServerOutcome;
48 using RequestT = Model::DescribeServerRequest;
51 "ServerOnlineWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("ONLINE"),
52 [](const Model::DescribeServerOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
53 if (!outcome.IsSuccess()) return false;
54 const auto& result = outcome.GetResult();
55 return Model::StateMapper::GetNameForState(result.GetServer().GetState()) == expected.get<Aws::String>();
56 }));
58 "ServerOnlineWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("START_FAILED"),
59 [](const Model::DescribeServerOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
60 if (!outcome.IsSuccess()) return false;
61 const auto& result = outcome.GetResult();
62 return Model::StateMapper::GetNameForState(result.GetServer().GetState()) == expected.get<Aws::String>();
63 }));
64
65 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeServer(req); };
66 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(30, 120, std::move(acceptors), operation, "WaitUntilServerOnline");
67 return waiter.Wait(request);
68 }
69};
70} // namespace Transfer
71} // namespace Aws
Aws::Utils::WaiterOutcome< Model::DescribeServerOutcome > WaitUntilServerOffline(const Model::DescribeServerRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeServerOutcome > WaitUntilServerOnline(const Model::DescribeServerRequest &request)
bool IsSuccess() const
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
AWS_TRANSFER_API Aws::String GetNameForState(State value)
Aws::Utils::Outcome< DescribeServerResult, TransferError > DescribeServerOutcome
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