AWS SDK for C++

AWS SDK for C++ Version 1.11.778

Loading...
Searching...
No Matches
ACMWaiter.h
1
6#pragma once
7#include <aws/acm/ACMClient.h>
8#include <aws/acm/model/CertificateStatus.h>
9#include <aws/acm/model/DescribeCertificateRequest.h>
10#include <aws/acm/model/DescribeCertificateResult.h>
11#include <aws/acm/model/DomainStatus.h>
12#include <aws/core/utils/Waiter.h>
13#include <aws/core/utils/memory/AWSMemory.h>
14
15#include <algorithm>
16
17namespace Aws {
18namespace ACM {
19
20template <typename DerivedClient = ACMClient>
21class ACMWaiter {
22 public:
24 const Model::DescribeCertificateRequest& request) {
25 using OutcomeT = Model::DescribeCertificateOutcome;
26 using RequestT = Model::DescribeCertificateRequest;
29 "CertificateValidatedWaiter", Aws::Utils::WaiterState::SUCCESS, Aws::String("SUCCESS"),
30 [](const Model::DescribeCertificateOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
31 if (!outcome.IsSuccess()) return false;
32 const auto& result = outcome.GetResult();
33 return std::all_of(result.GetCertificate().GetDomainValidationOptions().begin(),
34 result.GetCertificate().GetDomainValidationOptions().end(), [&](const Model::DomainValidation& item) {
35 return Model::DomainStatusMapper::GetNameForDomainStatus(item.GetValidationStatus()) ==
36 expected.get<Aws::String>();
37 });
38 }));
40 "CertificateValidatedWaiter", Aws::Utils::WaiterState::RETRY, Aws::String("PENDING_VALIDATION"),
41 [](const Model::DescribeCertificateOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
42 if (!outcome.IsSuccess()) return false;
43 const auto& result = outcome.GetResult();
44 return std::any_of(result.GetCertificate().GetDomainValidationOptions().begin(),
45 result.GetCertificate().GetDomainValidationOptions().end(), [&](const Model::DomainValidation& item) {
46 return Model::DomainStatusMapper::GetNameForDomainStatus(item.GetValidationStatus()) ==
47 expected.get<Aws::String>();
48 });
49 }));
51 "CertificateValidatedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("FAILED"),
52 [](const Model::DescribeCertificateOutcome& outcome, const Aws::Utils::ExpectedValue& expected) -> bool {
53 if (!outcome.IsSuccess()) return false;
54 const auto& result = outcome.GetResult();
55 return Model::CertificateStatusMapper::GetNameForCertificateStatus(result.GetCertificate().GetStatus()) ==
56 expected.get<Aws::String>();
57 }));
59 "CertificateValidatedWaiter", Aws::Utils::WaiterState::FAILURE, Aws::String("ResourceNotFoundException")));
60
61 auto operation = [this](const RequestT& req) { return static_cast<DerivedClient*>(this)->DescribeCertificate(req); };
62 Aws::Utils::Waiter<RequestT, OutcomeT> waiter(60, 2, std::move(acceptors), operation, "WaitUntilCertificateValidated");
63 return waiter.Wait(request);
64 }
65};
66} // namespace ACM
67} // namespace Aws
Aws::Utils::WaiterOutcome< Model::DescribeCertificateOutcome > WaitUntilCertificateValidated(const Model::DescribeCertificateRequest &request)
Definition ACMWaiter.h:23
bool IsSuccess() const
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
AWS_ACM_API Aws::String GetNameForCertificateStatus(CertificateStatus value)
Aws::Utils::Outcome< DescribeCertificateResult, ACMError > DescribeCertificateOutcome
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