aws_sdk_cloudformation/operation/signal_resource/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::signal_resource::_signal_resource_output::SignalResourceOutputBuilder;
3
4pub use crate::operation::signal_resource::_signal_resource_input::SignalResourceInputBuilder;
5
6impl crate::operation::signal_resource::builders::SignalResourceInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::signal_resource::SignalResourceOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::signal_resource::SignalResourceError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.signal_resource();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `SignalResource`.
24///
25/// <p>Sends a signal to the specified resource with a success or failure status. You can use the <code>SignalResource</code> operation in conjunction with a creation policy or update policy. CloudFormation doesn't proceed with a stack creation or update until resources receive the required number of signals or the timeout period is exceeded. The <code>SignalResource</code> operation is useful in cases where you want to send signals from anywhere other than an Amazon EC2 instance.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct SignalResourceFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::signal_resource::builders::SignalResourceInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::signal_resource::SignalResourceOutput,
35        crate::operation::signal_resource::SignalResourceError,
36    > for SignalResourceFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::signal_resource::SignalResourceOutput,
44            crate::operation::signal_resource::SignalResourceError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl SignalResourceFluentBuilder {
51    /// Creates a new `SignalResourceFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the SignalResource as a reference.
60    pub fn as_input(&self) -> &crate::operation::signal_resource::builders::SignalResourceInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::signal_resource::SignalResourceOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::signal_resource::SignalResourceError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::signal_resource::SignalResource::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::signal_resource::SignalResource::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::signal_resource::SignalResourceOutput,
97        crate::operation::signal_resource::SignalResourceError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>The stack name or unique stack ID that includes the resource that you want to signal.</p>
112    pub fn stack_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.stack_name(input.into());
114        self
115    }
116    /// <p>The stack name or unique stack ID that includes the resource that you want to signal.</p>
117    pub fn set_stack_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_stack_name(input);
119        self
120    }
121    /// <p>The stack name or unique stack ID that includes the resource that you want to signal.</p>
122    pub fn get_stack_name(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_stack_name()
124    }
125    /// <p>The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.</p>
126    pub fn logical_resource_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.logical_resource_id(input.into());
128        self
129    }
130    /// <p>The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.</p>
131    pub fn set_logical_resource_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_logical_resource_id(input);
133        self
134    }
135    /// <p>The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.</p>
136    pub fn get_logical_resource_id(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_logical_resource_id()
138    }
139    /// <p>A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.</p>
140    pub fn unique_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141        self.inner = self.inner.unique_id(input.into());
142        self
143    }
144    /// <p>A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.</p>
145    pub fn set_unique_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146        self.inner = self.inner.set_unique_id(input);
147        self
148    }
149    /// <p>A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.</p>
150    pub fn get_unique_id(&self) -> &::std::option::Option<::std::string::String> {
151        self.inner.get_unique_id()
152    }
153    /// <p>The status of the signal, which is either success or failure. A failure signal causes CloudFormation to immediately fail the stack creation or update.</p>
154    pub fn status(mut self, input: crate::types::ResourceSignalStatus) -> Self {
155        self.inner = self.inner.status(input);
156        self
157    }
158    /// <p>The status of the signal, which is either success or failure. A failure signal causes CloudFormation to immediately fail the stack creation or update.</p>
159    pub fn set_status(mut self, input: ::std::option::Option<crate::types::ResourceSignalStatus>) -> Self {
160        self.inner = self.inner.set_status(input);
161        self
162    }
163    /// <p>The status of the signal, which is either success or failure. A failure signal causes CloudFormation to immediately fail the stack creation or update.</p>
164    pub fn get_status(&self) -> &::std::option::Option<crate::types::ResourceSignalStatus> {
165        self.inner.get_status()
166    }
167}