1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
///
/// Fluent builder for the `image_scan_complete` waiter.
///
/// This builder is intended to be used similar to the other fluent builders for
/// normal operations on the client. However, instead of a `send` method, it has
/// a `wait` method that takes a maximum amount of time to wait.
///
/// Construct this fluent builder using the client by importing the
/// [`Waiters`](crate::client::Waiters) trait and calling the methods
/// prefixed with `wait_until`.
///
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct ImageScanCompleteFluentBuilder {
handle: ::std::sync::Arc<crate::client::Handle>,
inner: crate::operation::describe_image_scan_findings::builders::DescribeImageScanFindingsInputBuilder,
}
impl ImageScanCompleteFluentBuilder {
/// Creates a new `ImageScanCompleteFluentBuilder`.
pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
Self {
handle,
inner: ::std::default::Default::default(),
}
}
/// Access the DescribeImageScanFindings as a reference.
pub fn as_input(&self) -> &crate::operation::describe_image_scan_findings::builders::DescribeImageScanFindingsInputBuilder {
&self.inner
}
/// Wait until an image scan is complete and findings can be accessed
pub async fn wait(
self,
max_wait: ::std::time::Duration,
) -> ::std::result::Result<
crate::waiters::image_scan_complete::ImageScanCompleteFinalPoll,
crate::waiters::image_scan_complete::WaitUntilImageScanCompleteError,
> {
let input = self
.inner
.build()
.map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
let runtime_plugins = crate::operation::describe_image_scan_findings::DescribeImageScanFindings::operation_runtime_plugins(
self.handle.runtime_plugins.clone(),
&self.handle.conf,
::std::option::Option::None,
);
let mut cfg = ::aws_smithy_types::config_bag::ConfigBag::base();
let runtime_components_builder = runtime_plugins
.apply_client_configuration(&mut cfg)
.map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
let time_components = runtime_components_builder.into_time_components();
let sleep_impl = time_components.sleep_impl().expect("a sleep impl is required by waiters");
let time_source = time_components.time_source().expect("a time source is required by waiters");
let acceptor = move |result: ::std::result::Result<
&crate::operation::describe_image_scan_findings::DescribeImageScanFindingsOutput,
&crate::operation::describe_image_scan_findings::DescribeImageScanFindingsError,
>| {
// Matches: {"output":{"path":"imageScanStatus.status","expected":"COMPLETE","comparator":"stringEquals"}}
if crate::waiters::matchers::match_describe_image_scan_findings_e6f570cf50c93ebe8(result) {
return ::aws_smithy_runtime::client::waiters::AcceptorState::Success;
}
// Matches: {"output":{"path":"imageScanStatus.status","expected":"FAILED","comparator":"stringEquals"}}
if crate::waiters::matchers::match_describe_image_scan_findings_98a640e82b81483b5(result) {
return ::aws_smithy_runtime::client::waiters::AcceptorState::Failure;
}
::aws_smithy_runtime::client::waiters::AcceptorState::NoAcceptorsMatched
};
let operation = move || {
let input = input.clone();
let runtime_plugins = runtime_plugins.clone();
async move { crate::operation::describe_image_scan_findings::DescribeImageScanFindings::orchestrate(&runtime_plugins, input).await }
};
let orchestrator = ::aws_smithy_runtime::client::waiters::WaiterOrchestrator::builder()
.min_delay(::std::time::Duration::from_secs(5))
.max_delay(::std::time::Duration::from_secs(120))
.max_wait(max_wait)
.time_source(time_source)
.sleep_impl(sleep_impl)
.acceptor(acceptor)
.operation(operation)
.build();
::aws_smithy_runtime::client::waiters::attach_waiter_tracing_span(orchestrator.orchestrate()).await
}
/// <p>The Amazon Web Services account ID associated with the registry that contains the repository in which to describe the image scan findings for. If you do not specify a registry, the default registry is assumed.</p>
pub fn registry_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.registry_id(input.into());
self
}
/// <p>The Amazon Web Services account ID associated with the registry that contains the repository in which to describe the image scan findings for. If you do not specify a registry, the default registry is assumed.</p>
pub fn set_registry_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_registry_id(input);
self
}
/// <p>The Amazon Web Services account ID associated with the registry that contains the repository in which to describe the image scan findings for. If you do not specify a registry, the default registry is assumed.</p>
pub fn get_registry_id(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_registry_id()
}
/// <p>The repository for the image for which to describe the scan findings.</p>
pub fn repository_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.repository_name(input.into());
self
}
/// <p>The repository for the image for which to describe the scan findings.</p>
pub fn set_repository_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_repository_name(input);
self
}
/// <p>The repository for the image for which to describe the scan findings.</p>
pub fn get_repository_name(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_repository_name()
}
/// <p>An object with identifying information for an image in an Amazon ECR repository.</p>
pub fn image_id(mut self, input: crate::types::ImageIdentifier) -> Self {
self.inner = self.inner.image_id(input);
self
}
/// <p>An object with identifying information for an image in an Amazon ECR repository.</p>
pub fn set_image_id(mut self, input: ::std::option::Option<crate::types::ImageIdentifier>) -> Self {
self.inner = self.inner.set_image_id(input);
self
}
/// <p>An object with identifying information for an image in an Amazon ECR repository.</p>
pub fn get_image_id(&self) -> &::std::option::Option<crate::types::ImageIdentifier> {
self.inner.get_image_id()
}
/// <p>The <code>nextToken</code> value returned from a previous paginated <code>DescribeImageScanFindings</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is null when there are no more results to return.</p>
pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.next_token(input.into());
self
}
/// <p>The <code>nextToken</code> value returned from a previous paginated <code>DescribeImageScanFindings</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is null when there are no more results to return.</p>
pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_next_token(input);
self
}
/// <p>The <code>nextToken</code> value returned from a previous paginated <code>DescribeImageScanFindings</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value. This value is null when there are no more results to return.</p>
pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_next_token()
}
/// <p>The maximum number of image scan results returned by <code>DescribeImageScanFindings</code> in paginated output. When this parameter is used, <code>DescribeImageScanFindings</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeImageScanFindings</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>DescribeImageScanFindings</code> returns up to 100 results and a <code>nextToken</code> value, if applicable.</p>
pub fn max_results(mut self, input: i32) -> Self {
self.inner = self.inner.max_results(input);
self
}
/// <p>The maximum number of image scan results returned by <code>DescribeImageScanFindings</code> in paginated output. When this parameter is used, <code>DescribeImageScanFindings</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeImageScanFindings</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>DescribeImageScanFindings</code> returns up to 100 results and a <code>nextToken</code> value, if applicable.</p>
pub fn set_max_results(mut self, input: ::std::option::Option<i32>) -> Self {
self.inner = self.inner.set_max_results(input);
self
}
/// <p>The maximum number of image scan results returned by <code>DescribeImageScanFindings</code> in paginated output. When this parameter is used, <code>DescribeImageScanFindings</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>DescribeImageScanFindings</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 1000. If this parameter is not used, then <code>DescribeImageScanFindings</code> returns up to 100 results and a <code>nextToken</code> value, if applicable.</p>
pub fn get_max_results(&self) -> &::std::option::Option<i32> {
self.inner.get_max_results()
}
}
/// Successful return type for the `image_scan_complete` waiter.
pub type ImageScanCompleteFinalPoll = ::aws_smithy_runtime_api::client::waiters::FinalPoll<
crate::operation::describe_image_scan_findings::DescribeImageScanFindingsOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::describe_image_scan_findings::DescribeImageScanFindingsError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
>;
/// Error type for the `image_scan_complete` waiter.
pub type WaitUntilImageScanCompleteError = ::aws_smithy_runtime_api::client::waiters::error::WaiterError<
crate::operation::describe_image_scan_findings::DescribeImageScanFindingsOutput,
crate::operation::describe_image_scan_findings::DescribeImageScanFindingsError,
>;