7#include <aws/core/utils/Waiter.h>
8#include <aws/core/utils/memory/AWSMemory.h>
9#include <aws/resiliencehubv2/Resiliencehubv2Client.h>
10#include <aws/resiliencehubv2/model/AssessmentStatus.h>
11#include <aws/resiliencehubv2/model/GetServiceRequest.h>
12#include <aws/resiliencehubv2/model/GetServiceResult.h>
13#include <aws/resiliencehubv2/model/ListFailureModeAssessmentsRequest.h>
14#include <aws/resiliencehubv2/model/ListFailureModeAssessmentsResult.h>
15#include <aws/resiliencehubv2/model/ListReportsRequest.h>
16#include <aws/resiliencehubv2/model/ListReportsResult.h>
17#include <aws/resiliencehubv2/model/ReportGenerationStatus.h>
18#include <aws/resiliencehubv2/model/ResourceDiscoveryRunStatus.h>
23namespace resiliencehubv2 {
25template <
typename DerivedClient = Resiliencehubv2Client>
33 "ServiceAssessmentCompletedWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"SUCCESS"),
41 "ServiceAssessmentCompletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"FAILED"),
49 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->GetService(req); };
51 return waiter.
Wait(request);
59 "ServiceResourceDiscoveryCompletedWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"SUCCEEDED"),
64 result.GetService().GetResourceDiscovery().GetStatus()) == expected.get<
Aws::String>();
67 "ServiceResourceDiscoveryCompletedWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"COMPLETED_WITH_FAILURES"),
72 result.GetService().GetResourceDiscovery().GetStatus()) == expected.get<
Aws::String>();
75 "ServiceResourceDiscoveryCompletedWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"FAILED"),
80 result.GetService().GetResourceDiscovery().GetStatus()) == expected.get<
Aws::String>();
83 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->GetService(req); };
85 return waiter.
Wait(request);
94 "FailureModeAssessmentSuccessWaiter", Aws::Utils::WaiterState::RETRY,
true,
98 return (result.GetAssessmentSummaries().size() == 0) == expected.get<
bool>();
101 "FailureModeAssessmentSuccessWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"SUCCESS"),
104 const auto& result = outcome.
GetResult();
106 result.GetAssessmentSummaries().begin(), result.GetAssessmentSummaries().end(), [&](
const Model::AssessmentSummary& item) {
107 return Model::AssessmentStatusMapper::GetNameForAssessmentStatus(item.GetAssessmentStatus()) == expected.get<Aws::String>();
111 "FailureModeAssessmentSuccessWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"FAILED"),
114 const auto& result = outcome.
GetResult();
116 result.GetAssessmentSummaries().begin(), result.GetAssessmentSummaries().end(), [&](
const Model::AssessmentSummary& item) {
117 return Model::AssessmentStatusMapper::GetNameForAssessmentStatus(item.GetAssessmentStatus()) == expected.get<Aws::String>();
121 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->ListFailureModeAssessments(req); };
123 return waiter.
Wait(request);
131 "ReportSucceededWaiter", Aws::Utils::WaiterState::RETRY,
true,
134 const auto& result = outcome.
GetResult();
135 return (result.GetReportGenerationResults().size() == 0) == expected.get<
bool>();
138 "ReportSucceededWaiter", Aws::Utils::WaiterState::SUCCESS,
Aws::String(
"SUCCEEDED"),
141 const auto& result = outcome.
GetResult();
142 return std::all_of(result.GetReportGenerationResults().begin(), result.GetReportGenerationResults().end(),
144 return Model::ReportGenerationStatusMapper::GetNameForReportGenerationStatus(item.GetStatus()) ==
145 expected.get<Aws::String>();
149 "ReportSucceededWaiter", Aws::Utils::WaiterState::FAILURE,
Aws::String(
"FAILED"),
152 const auto& result = outcome.
GetResult();
153 return std::any_of(result.GetReportGenerationResults().begin(), result.GetReportGenerationResults().end(),
155 return Model::ReportGenerationStatusMapper::GetNameForReportGenerationStatus(item.GetStatus()) ==
156 expected.get<Aws::String>();
160 auto operation = [
this](
const RequestT& req) {
return static_cast<DerivedClient*
>(
this)->ListReports(req); };
162 return waiter.
Wait(request);
const R & GetResult() const
WaiterOutcome< OutcomeT > Wait(const RequestT &request)
Aws::Utils::WaiterOutcome< Model::GetServiceOutcome > WaitUntilServiceAssessmentCompleted(const Model::GetServiceRequest &request)
Aws::Utils::WaiterOutcome< Model::ListFailureModeAssessmentsOutcome > WaitUntilFailureModeAssessmentSuccess(const Model::ListFailureModeAssessmentsRequest &request)
Aws::Utils::WaiterOutcome< Model::GetServiceOutcome > WaitUntilServiceResourceDiscoveryCompleted(const Model::GetServiceRequest &request)
Aws::Utils::WaiterOutcome< Model::ListReportsOutcome > WaitUntilReportSucceeded(const Model::ListReportsRequest &request)
Crt::Variant< int, bool, Aws::String > ExpectedValue
AWS_RESILIENCEHUBV2_API Aws::String GetNameForAssessmentStatus(AssessmentStatus value)
AWS_RESILIENCEHUBV2_API Aws::String GetNameForResourceDiscoveryRunStatus(ResourceDiscoveryRunStatus value)
Aws::Utils::Outcome< ListFailureModeAssessmentsResult, Resiliencehubv2Error > ListFailureModeAssessmentsOutcome
Aws::Utils::Outcome< GetServiceResult, Resiliencehubv2Error > GetServiceOutcome
Aws::Utils::Outcome< ListReportsResult, Resiliencehubv2Error > ListReportsOutcome
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