AWS SDK for C++

AWS SDK for C++ Version 1.11.777

Loading...
Searching...
No Matches
SchemasWaiter.h
1
6#pragma once
7#include <aws/core/utils/Waiter.h>
8#include <aws/core/utils/memory/AWSMemory.h>
9#include <aws/schemas/SchemasClient.h>
10#include <aws/schemas/model/CodeGenerationStatus.h>
11#include <aws/schemas/model/DescribeCodeBindingRequest.h>
12#include <aws/schemas/model/DescribeCodeBindingResult.h>
13
14#include <algorithm>
15
16namespace Aws {
17namespace Schemas {
18
19template <typename DerivedClient = SchemasClient>
21 public:
23 const Model::DescribeCodeBindingRequest& request) {
24 using OutcomeT = Model::DescribeCodeBindingOutcome;
25 using RequestT = Model::DescribeCodeBindingRequest;
28 "CodeBindingExistsWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("CREATE_COMPLETE"),
29 [](const Model::DescribeCodeBindingOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
30 if (!outcome.IsSuccess()) return false;
31 const auto& result = outcome.GetResult();
32 return Model::CodeGenerationStatusMapper::GetNameForCodeGenerationStatus(result.GetStatus()) == expected.get<Aws::String>();
33 }));
35 "CodeBindingExistsWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("CREATE_IN_PROGRESS"),
36 [](const Model::DescribeCodeBindingOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
37 if (!outcome.IsSuccess()) return false;
38 const auto& result = outcome.GetResult();
39 return Model::CodeGenerationStatusMapper::GetNameForCodeGenerationStatus(result.GetStatus()) == expected.get<Aws::String>();
40 }));
42 "CodeBindingExistsWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("CREATE_FAILED"),
43 [](const Model::DescribeCodeBindingOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
44 if (!outcome.IsSuccess()) return false;
45 const auto& result = outcome.GetResult();
46 return Model::CodeGenerationStatusMapper::GetNameForCodeGenerationStatus(result.GetStatus()) == expected.get<Aws::String>();
47 }));
48 acceptors.emplace_back(Aws::MakeUnique<Aws::Utils::ErrorAcceptor<OutcomeT>>("CodeBindingExistsWaiter", Aws::Utils::WaiterState::FAILURE,
49 Aws::String("NotFoundException")));
50
51 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeCodeBinding(req); };
52 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(2, 60, std::move(acceptors), operation, "WaitUntilCodeBindingExists");
53 return waiter.Wait(request);
54 }
55};
56} // namespace Schemas
57} // namespace Aws
Aws::Utils::WaiterOutcome< Model::DescribeCodeBindingOutcome > WaitUntilCodeBindingExists(const Model::DescribeCodeBindingRequest &request)
bool IsSuccess() const
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
AWS_SCHEMAS_API Aws::String GetNameForCodeGenerationStatus(CodeGenerationStatus value)
Aws::Utils::Outcome< DescribeCodeBindingResult, SchemasError > DescribeCodeBindingOutcome
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