aws-sdk-ses 1.99.0

AWS SDK for Amazon Simple Email Service
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::send_bounce::_send_bounce_input::SendBounceInputBuilder;

pub use crate::operation::send_bounce::_send_bounce_output::SendBounceOutputBuilder;

impl crate::operation::send_bounce::builders::SendBounceInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::send_bounce::SendBounceOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::send_bounce::SendBounceError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.send_bounce();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `SendBounce`.
///
/// <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>
/// <p>You cannot use this operation to send generic bounces for mail that was not received by Amazon SES.</p>
/// </note>
/// <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>
/// <p>You can execute this operation no more than once per second.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct SendBounceFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::send_bounce::builders::SendBounceInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::send_bounce::SendBounceOutput,
        crate::operation::send_bounce::SendBounceError,
    > for SendBounceFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::send_bounce::SendBounceOutput,
            crate::operation::send_bounce::SendBounceError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl SendBounceFluentBuilder {
    /// Creates a new `SendBounceFluentBuilder`.
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: ::std::default::Default::default(),
            config_override: ::std::option::Option::None,
        }
    }
    /// Access the SendBounce as a reference.
    pub fn as_input(&self) -> &crate::operation::send_bounce::builders::SendBounceInputBuilder {
        &self.inner
    }
    /// Sends the request and returns the response.
    ///
    /// If an error occurs, an `SdkError` will be returned with additional details that
    /// can be matched against.
    ///
    /// By default, any retryable failures will be retried twice. Retry behavior
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
    /// set when configuring the client.
    pub async fn send(
        self,
    ) -> ::std::result::Result<
        crate::operation::send_bounce::SendBounceOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::send_bounce::SendBounceError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let input = self
            .inner
            .build()
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
        let runtime_plugins = crate::operation::send_bounce::SendBounce::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::send_bounce::SendBounce::orchestrate(&runtime_plugins, input).await
    }

    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
    pub fn customize(
        self,
    ) -> crate::client::customize::CustomizableOperation<
        crate::operation::send_bounce::SendBounceOutput,
        crate::operation::send_bounce::SendBounceError,
        Self,
    > {
        crate::client::customize::CustomizableOperation::new(self)
    }
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
        self.set_config_override(::std::option::Option::Some(config_override.into()));
        self
    }

    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
        self.config_override = config_override;
        self
    }
    /// <p>The message ID of the message to be bounced.</p>
    pub fn original_message_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.original_message_id(input.into());
        self
    }
    /// <p>The message ID of the message to be bounced.</p>
    pub fn set_original_message_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_original_message_id(input);
        self
    }
    /// <p>The message ID of the message to be bounced.</p>
    pub fn get_original_message_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_original_message_id()
    }
    /// <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>
    pub fn bounce_sender(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.bounce_sender(input.into());
        self
    }
    /// <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>
    pub fn set_bounce_sender(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_bounce_sender(input);
        self
    }
    /// <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>
    pub fn get_bounce_sender(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_bounce_sender()
    }
    /// <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>
    pub fn explanation(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.explanation(input.into());
        self
    }
    /// <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>
    pub fn set_explanation(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_explanation(input);
        self
    }
    /// <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>
    pub fn get_explanation(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_explanation()
    }
    /// <p>Message-related DSN fields. If not specified, Amazon SES chooses the values.</p>
    pub fn message_dsn(mut self, input: crate::types::MessageDsn) -> Self {
        self.inner = self.inner.message_dsn(input);
        self
    }
    /// <p>Message-related DSN fields. If not specified, Amazon SES chooses the values.</p>
    pub fn set_message_dsn(mut self, input: ::std::option::Option<crate::types::MessageDsn>) -> Self {
        self.inner = self.inner.set_message_dsn(input);
        self
    }
    /// <p>Message-related DSN fields. If not specified, Amazon SES chooses the values.</p>
    pub fn get_message_dsn(&self) -> &::std::option::Option<crate::types::MessageDsn> {
        self.inner.get_message_dsn()
    }
    ///
    /// Appends an item to `BouncedRecipientInfoList`.
    ///
    /// To override the contents of this collection use [`set_bounced_recipient_info_list`](Self::set_bounced_recipient_info_list).
    ///
    /// <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>
    pub fn bounced_recipient_info_list(mut self, input: crate::types::BouncedRecipientInfo) -> Self {
        self.inner = self.inner.bounced_recipient_info_list(input);
        self
    }
    /// <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>
    pub fn set_bounced_recipient_info_list(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::BouncedRecipientInfo>>) -> Self {
        self.inner = self.inner.set_bounced_recipient_info_list(input);
        self
    }
    /// <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>
    pub fn get_bounced_recipient_info_list(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::BouncedRecipientInfo>> {
        self.inner.get_bounced_recipient_info_list()
    }
    /// <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>
    pub fn bounce_sender_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.bounce_sender_arn(input.into());
        self
    }
    /// <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>
    pub fn set_bounce_sender_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_bounce_sender_arn(input);
        self
    }
    /// <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>
    pub fn get_bounce_sender_arn(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_bounce_sender_arn()
    }
}