aws_sdk_lambda/waiters/
function_active.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3///
4/// Fluent builder for the `function_active` waiter.
5///
6/// This builder is intended to be used similar to the other fluent builders for
7/// normal operations on the client. However, instead of a `send` method, it has
8/// a `wait` method that takes a maximum amount of time to wait.
9///
10/// Construct this fluent builder using the client by importing the
11/// [`Waiters`](crate::client::Waiters) trait and calling the methods
12/// prefixed with `wait_until`.
13///
14#[derive(::std::clone::Clone, ::std::fmt::Debug)]
15pub struct FunctionActiveFluentBuilder {
16    handle: ::std::sync::Arc<crate::client::Handle>,
17    inner: crate::operation::get_function_configuration::builders::GetFunctionConfigurationInputBuilder,
18}
19impl FunctionActiveFluentBuilder {
20    /// Creates a new `FunctionActiveFluentBuilder`.
21    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
22        Self {
23            handle,
24            inner: ::std::default::Default::default(),
25        }
26    }
27    /// Access the GetFunctionConfiguration as a reference.
28    pub fn as_input(&self) -> &crate::operation::get_function_configuration::builders::GetFunctionConfigurationInputBuilder {
29        &self.inner
30    }
31    /// Waits for the function's State to be Active. This waiter uses GetFunctionConfiguration API. This should be used after new function creation.
32    pub async fn wait(
33        self,
34        max_wait: ::std::time::Duration,
35    ) -> ::std::result::Result<crate::waiters::function_active::FunctionActiveFinalPoll, crate::waiters::function_active::WaitUntilFunctionActiveError>
36    {
37        let input = self
38            .inner
39            .build()
40            .map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
41        let runtime_plugins = crate::operation::get_function_configuration::GetFunctionConfiguration::operation_runtime_plugins(
42            self.handle.runtime_plugins.clone(),
43            &self.handle.conf,
44            ::std::option::Option::None,
45        )
46        .with_operation_plugin(crate::sdk_feature_tracker::waiter::WaiterFeatureTrackerRuntimePlugin::new());
47        let mut cfg = ::aws_smithy_types::config_bag::ConfigBag::base();
48        let runtime_components_builder = runtime_plugins
49            .apply_client_configuration(&mut cfg)
50            .map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
51        let time_components = runtime_components_builder.into_time_components();
52        let sleep_impl = time_components.sleep_impl().expect("a sleep impl is required by waiters");
53        let time_source = time_components.time_source().expect("a time source is required by waiters");
54
55        let acceptor = move |result: ::std::result::Result<
56            &crate::operation::get_function_configuration::GetFunctionConfigurationOutput,
57            &crate::operation::get_function_configuration::GetFunctionConfigurationError,
58        >| {
59            // Matches: {"output":{"path":"State","expected":"Active","comparator":"stringEquals"}}
60            if crate::waiters::matchers::match_get_function_configuration_9fb739f92fd5b515a(result) {
61                return ::aws_smithy_runtime::client::waiters::AcceptorState::Success;
62            }
63            // Matches: {"output":{"path":"State","expected":"Failed","comparator":"stringEquals"}}
64            if crate::waiters::matchers::match_get_function_configuration_87a1a2d4cc2e2d1e1(result) {
65                return ::aws_smithy_runtime::client::waiters::AcceptorState::Failure;
66            }
67            // Matches: {"output":{"path":"State","expected":"Pending","comparator":"stringEquals"}}
68            if crate::waiters::matchers::match_get_function_configuration_ff08d54fec9077aeb(result) {
69                return ::aws_smithy_runtime::client::waiters::AcceptorState::Retry;
70            }
71            ::aws_smithy_runtime::client::waiters::AcceptorState::NoAcceptorsMatched
72        };
73        let operation = move || {
74            let input = input.clone();
75            let runtime_plugins = runtime_plugins.clone();
76            async move { crate::operation::get_function_configuration::GetFunctionConfiguration::orchestrate(&runtime_plugins, input).await }
77        };
78        let orchestrator = ::aws_smithy_runtime::client::waiters::WaiterOrchestrator::builder()
79            .min_delay(::std::time::Duration::from_secs(5))
80            .max_delay(::std::time::Duration::from_secs(120))
81            .max_wait(max_wait)
82            .time_source(time_source)
83            .sleep_impl(sleep_impl)
84            .acceptor(acceptor)
85            .operation(operation)
86            .build();
87        ::aws_smithy_runtime::client::waiters::attach_waiter_tracing_span(orchestrator.orchestrate()).await
88    }
89    /// <p>The name or ARN of the Lambda function, version, or alias.</p>
90    /// <p class="title"><b>Name formats</b></p>
91    /// <ul>
92    /// <li>
93    /// <p><b>Function name</b> – <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias).</p></li>
94    /// <li>
95    /// <p><b>Function ARN</b> – <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>.</p></li>
96    /// <li>
97    /// <p><b>Partial ARN</b> – <code>123456789012:function:my-function</code>.</p></li>
98    /// </ul>
99    /// <p>You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.</p>
100    pub fn function_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
101        self.inner = self.inner.function_name(input.into());
102        self
103    }
104    /// <p>The name or ARN of the Lambda function, version, or alias.</p>
105    /// <p class="title"><b>Name formats</b></p>
106    /// <ul>
107    /// <li>
108    /// <p><b>Function name</b> – <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias).</p></li>
109    /// <li>
110    /// <p><b>Function ARN</b> – <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>.</p></li>
111    /// <li>
112    /// <p><b>Partial ARN</b> – <code>123456789012:function:my-function</code>.</p></li>
113    /// </ul>
114    /// <p>You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.</p>
115    pub fn set_function_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
116        self.inner = self.inner.set_function_name(input);
117        self
118    }
119    /// <p>The name or ARN of the Lambda function, version, or alias.</p>
120    /// <p class="title"><b>Name formats</b></p>
121    /// <ul>
122    /// <li>
123    /// <p><b>Function name</b> – <code>my-function</code> (name-only), <code>my-function:v1</code> (with alias).</p></li>
124    /// <li>
125    /// <p><b>Function ARN</b> – <code>arn:aws:lambda:us-west-2:123456789012:function:my-function</code>.</p></li>
126    /// <li>
127    /// <p><b>Partial ARN</b> – <code>123456789012:function:my-function</code>.</p></li>
128    /// </ul>
129    /// <p>You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.</p>
130    pub fn get_function_name(&self) -> &::std::option::Option<::std::string::String> {
131        self.inner.get_function_name()
132    }
133    /// <p>Specify a version or alias to get details about a published version of the function.</p>
134    pub fn qualifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
135        self.inner = self.inner.qualifier(input.into());
136        self
137    }
138    /// <p>Specify a version or alias to get details about a published version of the function.</p>
139    pub fn set_qualifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
140        self.inner = self.inner.set_qualifier(input);
141        self
142    }
143    /// <p>Specify a version or alias to get details about a published version of the function.</p>
144    pub fn get_qualifier(&self) -> &::std::option::Option<::std::string::String> {
145        self.inner.get_qualifier()
146    }
147}
148
149/// Successful return type for the `function_active` waiter.
150pub type FunctionActiveFinalPoll = ::aws_smithy_runtime_api::client::waiters::FinalPoll<
151    crate::operation::get_function_configuration::GetFunctionConfigurationOutput,
152    ::aws_smithy_runtime_api::client::result::SdkError<
153        crate::operation::get_function_configuration::GetFunctionConfigurationError,
154        ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
155    >,
156>;
157
158/// Error type for the `function_active` waiter.
159pub type WaitUntilFunctionActiveError = ::aws_smithy_runtime_api::client::waiters::error::WaiterError<
160    crate::operation::get_function_configuration::GetFunctionConfigurationOutput,
161    crate::operation::get_function_configuration::GetFunctionConfigurationError,
162>;