AWS SDK for C++

AWS SDK for C++ Version 1.11.888

Loading...
Searching...
No Matches
KinesisWaiter.h
1
6#pragma once
7#include <aws/core/utils/Waiter.h>
8#include <aws/core/utils/memory/AWSMemory.h>
9#include <aws/kinesis/KinesisClient.h>
10#include <aws/kinesis/model/ChannelStatus.h>
11#include <aws/kinesis/model/DescribeChannelRequest.h>
12#include <aws/kinesis/model/DescribeChannelResult.h>
13#include <aws/kinesis/model/DescribeStreamRequest.h>
14#include <aws/kinesis/model/DescribeStreamResult.h>
15#include <aws/kinesis/model/StreamStatus.h>
16
17#include <algorithm>
18
19namespace Aws {
20namespace Kinesis {
21
22template <typename DerivedClient = KinesisClient>
24 public:
26 using OutcomeT = Model::DescribeChannelOutcome;
27 using RequestT = Model::DescribeChannelRequest;
30 "ChannelActiveWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("ACTIVE"),
31 [](const Model::DescribeChannelOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
32 if (!outcome.IsSuccess()) return false;
33 const auto& result = outcome.GetResult();
34 return Model::ChannelStatusMapper::GetNameForChannelStatus(result.GetChannelDescription().GetChannelStatus()) ==
35 expected.get<Aws::String>();
36 }));
38 "ChannelActiveWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("CREATING"),
39 [](const Model::DescribeChannelOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
40 if (!outcome.IsSuccess()) return false;
41 const auto& result = outcome.GetResult();
42 return Model::ChannelStatusMapper::GetNameForChannelStatus(result.GetChannelDescription().GetChannelStatus()) ==
43 expected.get<Aws::String>();
44 }));
46 "ChannelActiveWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("UPDATING"),
47 [](const Model::DescribeChannelOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
48 if (!outcome.IsSuccess()) return false;
49 const auto& result = outcome.GetResult();
50 return Model::ChannelStatusMapper::GetNameForChannelStatus(result.GetChannelDescription().GetChannelStatus()) ==
51 expected.get<Aws::String>();
52 }));
54 "ChannelActiveWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("DELETING"),
55 [](const Model::DescribeChannelOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
56 if (!outcome.IsSuccess()) return false;
57 const auto& result = outcome.GetResult();
58 return Model::ChannelStatusMapper::GetNameForChannelStatus(result.GetChannelDescription().GetChannelStatus()) ==
59 expected.get<Aws::String>();
60 }));
62 "ChannelActiveWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("FAILED"),
63 [](const Model::DescribeChannelOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
64 if (!outcome.IsSuccess()) return false;
65 const auto& result = outcome.GetResult();
66 return Model::ChannelStatusMapper::GetNameForChannelStatus(result.GetChannelDescription().GetChannelStatus()) ==
67 expected.get<Aws::String>();
68 }));
69
70 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeChannel(req); };
71 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(10, 12, std::move(acceptors), operation, "WaitUntilChannelActive");
72 return waiter.Wait(request);
73 }
74
76 using OutcomeT = Model::DescribeStreamOutcome;
77 using RequestT = Model::DescribeStreamRequest;
80 "StreamExistsWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("ACTIVE"),
81 [](const Model::DescribeStreamOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
82 if (!outcome.IsSuccess()) return false;
83 const auto& result = outcome.GetResult();
84 return Model::StreamStatusMapper::GetNameForStreamStatus(result.GetStreamDescription().GetStreamStatus()) ==
85 expected.get<Aws::String>();
86 }));
87
88 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeStream(req); };
89 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(10, 12, std::move(acceptors), operation, "WaitUntilStreamExists");
90 return waiter.Wait(request);
91 }
92
94 using OutcomeT = Model::DescribeStreamOutcome;
95 using RequestT = Model::DescribeStreamRequest;
97 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("StreamNotExistsWaiter", Aws::Utils::WaiterState::SUCCESS,
98 Aws::String("ResourceNotFoundException")));
99
100 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeStream(req); };
101 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(10, 12, std::move(acceptors), operation, "WaitUntilStreamNotExists");
102 return waiter.Wait(request);
103 }
104};
105} // namespace Kinesis
106} // namespace Aws
Aws::Utils::WaiterOutcome< Model::DescribeChannelOutcome > WaitUntilChannelActive(const Model::DescribeChannelRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeStreamOutcome > WaitUntilStreamExists(const Model::DescribeStreamRequest &request)
Aws::Utils::WaiterOutcome< Model::DescribeStreamOutcome > WaitUntilStreamNotExists(const Model::DescribeStreamRequest &request)
bool IsSuccess() const
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
AWS_KINESIS_API Aws::String GetNameForChannelStatus(ChannelStatus value)
AWS_KINESIS_API Aws::String GetNameForStreamStatus(StreamStatus value)
Aws::Utils::Outcome< DescribeStreamResult, KinesisError > DescribeStreamOutcome
Aws::Utils::Outcome< DescribeChannelResult, KinesisError > DescribeChannelOutcome
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