aws_sdk_ses/operation/send_bounce/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::send_bounce::_send_bounce_output::SendBounceOutputBuilder;
3
4pub use crate::operation::send_bounce::_send_bounce_input::SendBounceInputBuilder;
5
6impl crate::operation::send_bounce::builders::SendBounceInputBuilder {
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::send_bounce::SendBounceOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::send_bounce::SendBounceError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.send_bounce();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `SendBounce`.
24///
25/// <p>Generates and sends a bounce message to the sender of an email you received through Amazon SES. You can only use this operation on an email up to 24 hours after you receive it.</p><note>
26/// <p>You cannot use this operation to send generic bounces for mail that was not received by Amazon SES.</p>
27/// </note>
28/// <p>For information about receiving email through Amazon SES, see the <a href="https://docs.aws.amazon.com/ses/latest/dg/receiving-email.html">Amazon SES Developer Guide</a>.</p>
29/// <p>You can execute this operation no more than once per second.</p>
30#[derive(::std::clone::Clone, ::std::fmt::Debug)]
31pub struct SendBounceFluentBuilder {
32    handle: ::std::sync::Arc<crate::client::Handle>,
33    inner: crate::operation::send_bounce::builders::SendBounceInputBuilder,
34    config_override: ::std::option::Option<crate::config::Builder>,
35}
36impl
37    crate::client::customize::internal::CustomizableSend<
38        crate::operation::send_bounce::SendBounceOutput,
39        crate::operation::send_bounce::SendBounceError,
40    > for SendBounceFluentBuilder
41{
42    fn send(
43        self,
44        config_override: crate::config::Builder,
45    ) -> crate::client::customize::internal::BoxFuture<
46        crate::client::customize::internal::SendResult<
47            crate::operation::send_bounce::SendBounceOutput,
48            crate::operation::send_bounce::SendBounceError,
49        >,
50    > {
51        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
52    }
53}
54impl SendBounceFluentBuilder {
55    /// Creates a new `SendBounceFluentBuilder`.
56    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
57        Self {
58            handle,
59            inner: ::std::default::Default::default(),
60            config_override: ::std::option::Option::None,
61        }
62    }
63    /// Access the SendBounce as a reference.
64    pub fn as_input(&self) -> &crate::operation::send_bounce::builders::SendBounceInputBuilder {
65        &self.inner
66    }
67    /// Sends the request and returns the response.
68    ///
69    /// If an error occurs, an `SdkError` will be returned with additional details that
70    /// can be matched against.
71    ///
72    /// By default, any retryable failures will be retried twice. Retry behavior
73    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
74    /// set when configuring the client.
75    pub async fn send(
76        self,
77    ) -> ::std::result::Result<
78        crate::operation::send_bounce::SendBounceOutput,
79        ::aws_smithy_runtime_api::client::result::SdkError<
80            crate::operation::send_bounce::SendBounceError,
81            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
82        >,
83    > {
84        let input = self
85            .inner
86            .build()
87            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
88        let runtime_plugins = crate::operation::send_bounce::SendBounce::operation_runtime_plugins(
89            self.handle.runtime_plugins.clone(),
90            &self.handle.conf,
91            self.config_override,
92        );
93        crate::operation::send_bounce::SendBounce::orchestrate(&runtime_plugins, input).await
94    }
95
96    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
97    pub fn customize(
98        self,
99    ) -> crate::client::customize::CustomizableOperation<
100        crate::operation::send_bounce::SendBounceOutput,
101        crate::operation::send_bounce::SendBounceError,
102        Self,
103    > {
104        crate::client::customize::CustomizableOperation::new(self)
105    }
106    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
107        self.set_config_override(::std::option::Option::Some(config_override.into()));
108        self
109    }
110
111    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
112        self.config_override = config_override;
113        self
114    }
115    /// <p>The message ID of the message to be bounced.</p>
116    pub fn original_message_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
117        self.inner = self.inner.original_message_id(input.into());
118        self
119    }
120    /// <p>The message ID of the message to be bounced.</p>
121    pub fn set_original_message_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
122        self.inner = self.inner.set_original_message_id(input);
123        self
124    }
125    /// <p>The message ID of the message to be bounced.</p>
126    pub fn get_original_message_id(&self) -> &::std::option::Option<::std::string::String> {
127        self.inner.get_original_message_id()
128    }
129    /// <p>The address to use in the "From" header of the bounce message. This must be an identity that you have verified with Amazon SES.</p>
130    pub fn bounce_sender(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
131        self.inner = self.inner.bounce_sender(input.into());
132        self
133    }
134    /// <p>The address to use in the "From" header of the bounce message. This must be an identity that you have verified with Amazon SES.</p>
135    pub fn set_bounce_sender(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
136        self.inner = self.inner.set_bounce_sender(input);
137        self
138    }
139    /// <p>The address to use in the "From" header of the bounce message. This must be an identity that you have verified with Amazon SES.</p>
140    pub fn get_bounce_sender(&self) -> &::std::option::Option<::std::string::String> {
141        self.inner.get_bounce_sender()
142    }
143    /// <p>Human-readable text for the bounce message to explain the failure. If not specified, the text is auto-generated based on the bounced recipient information.</p>
144    pub fn explanation(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
145        self.inner = self.inner.explanation(input.into());
146        self
147    }
148    /// <p>Human-readable text for the bounce message to explain the failure. If not specified, the text is auto-generated based on the bounced recipient information.</p>
149    pub fn set_explanation(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
150        self.inner = self.inner.set_explanation(input);
151        self
152    }
153    /// <p>Human-readable text for the bounce message to explain the failure. If not specified, the text is auto-generated based on the bounced recipient information.</p>
154    pub fn get_explanation(&self) -> &::std::option::Option<::std::string::String> {
155        self.inner.get_explanation()
156    }
157    /// <p>Message-related DSN fields. If not specified, Amazon SES chooses the values.</p>
158    pub fn message_dsn(mut self, input: crate::types::MessageDsn) -> Self {
159        self.inner = self.inner.message_dsn(input);
160        self
161    }
162    /// <p>Message-related DSN fields. If not specified, Amazon SES chooses the values.</p>
163    pub fn set_message_dsn(mut self, input: ::std::option::Option<crate::types::MessageDsn>) -> Self {
164        self.inner = self.inner.set_message_dsn(input);
165        self
166    }
167    /// <p>Message-related DSN fields. If not specified, Amazon SES chooses the values.</p>
168    pub fn get_message_dsn(&self) -> &::std::option::Option<crate::types::MessageDsn> {
169        self.inner.get_message_dsn()
170    }
171    ///
172    /// Appends an item to `BouncedRecipientInfoList`.
173    ///
174    /// To override the contents of this collection use [`set_bounced_recipient_info_list`](Self::set_bounced_recipient_info_list).
175    ///
176    /// <p>A list of recipients of the bounced message, including the information required to create the Delivery Status Notifications (DSNs) for the recipients. You must specify at least one <code>BouncedRecipientInfo</code> in the list.</p>
177    pub fn bounced_recipient_info_list(mut self, input: crate::types::BouncedRecipientInfo) -> Self {
178        self.inner = self.inner.bounced_recipient_info_list(input);
179        self
180    }
181    /// <p>A list of recipients of the bounced message, including the information required to create the Delivery Status Notifications (DSNs) for the recipients. You must specify at least one <code>BouncedRecipientInfo</code> in the list.</p>
182    pub fn set_bounced_recipient_info_list(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::BouncedRecipientInfo>>) -> Self {
183        self.inner = self.inner.set_bounced_recipient_info_list(input);
184        self
185    }
186    /// <p>A list of recipients of the bounced message, including the information required to create the Delivery Status Notifications (DSNs) for the recipients. You must specify at least one <code>BouncedRecipientInfo</code> in the list.</p>
187    pub fn get_bounced_recipient_info_list(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::BouncedRecipientInfo>> {
188        self.inner.get_bounced_recipient_info_list()
189    }
190    /// <p>This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the address in the "From" header of the bounce. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/dg/sending-authorization.html">Amazon SES Developer Guide</a>.</p>
191    pub fn bounce_sender_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
192        self.inner = self.inner.bounce_sender_arn(input.into());
193        self
194    }
195    /// <p>This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the address in the "From" header of the bounce. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/dg/sending-authorization.html">Amazon SES Developer Guide</a>.</p>
196    pub fn set_bounce_sender_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
197        self.inner = self.inner.set_bounce_sender_arn(input);
198        self
199    }
200    /// <p>This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the address in the "From" header of the bounce. For more information about sending authorization, see the <a href="https://docs.aws.amazon.com/ses/latest/dg/sending-authorization.html">Amazon SES Developer Guide</a>.</p>
201    pub fn get_bounce_sender_arn(&self) -> &::std::option::Option<::std::string::String> {
202        self.inner.get_bounce_sender_arn()
203    }
204}