aws_sdk_connect/operation/associate_email_address_alias/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::associate_email_address_alias::_associate_email_address_alias_output::AssociateEmailAddressAliasOutputBuilder;
3
4pub use crate::operation::associate_email_address_alias::_associate_email_address_alias_input::AssociateEmailAddressAliasInputBuilder;
5
6impl crate::operation::associate_email_address_alias::builders::AssociateEmailAddressAliasInputBuilder {
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::associate_email_address_alias::AssociateEmailAddressAliasOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::associate_email_address_alias::AssociateEmailAddressAliasError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.associate_email_address_alias();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `AssociateEmailAddressAlias`.
24///
25/// <p>Associates an email address alias with an existing email address in an Amazon Connect instance. This creates a forwarding relationship where emails sent to the alias email address are automatically forwarded to the primary email address.</p>
26/// <p><b>Use cases</b></p>
27/// <p>Following are common uses cases for this API:</p>
28/// <ul>
29/// <li>
30/// <p><b>Unified customer support</b>: Create multiple entry points (for example, support@example.com, help@example.com, customercare@example.com) that all forward to a single agent queue for streamlined management.</p></li>
31/// <li>
32/// <p><b>Department consolidation</b>: Forward emails from legacy department addresses (for example, sales@example.com, info@example.com) to a centralized customer service email during organizational restructuring.</p></li>
33/// <li>
34/// <p><b>Brand management</b>: Enable you to use familiar brand-specific email addresses that forward to the appropriate Amazon Connect instance email address.</p></li>
35/// </ul>
36/// <p><b>Important things to know</b></p>
37/// <ul>
38/// <li>
39/// <p>Each email address can have a maximum of one alias. You cannot create multiple aliases for the same email address.</p></li>
40/// <li>
41/// <p>If the alias email address already receives direct emails, it continues to receive direct emails plus forwarded emails.</p></li>
42/// <li>
43/// <p>You cannot chain email aliases together (that is, create an alias of an alias).</p></li>
44/// </ul>
45/// <p><code>AssociateEmailAddressAlias</code> does not return the following information:</p>
46/// <ul>
47/// <li>
48/// <p>A confirmation of the alias relationship details (you must call <a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeEmailAddress.html">DescribeEmailAddress</a> to verify).</p></li>
49/// <li>
50/// <p>The timestamp of when the association occurred.</p></li>
51/// <li>
52/// <p>The status of the forwarding configuration.</p></li>
53/// </ul>
54/// <p><b>Endpoints</b>: See <a href="https://docs.aws.amazon.com/general/latest/gr/connect_region.html">Amazon Connect endpoints and quotas</a>.</p>
55/// <p><b>Related operations</b></p>
56/// <ul>
57/// <li>
58/// <p><a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_DisassociateEmailAddressAlias.html">DisassociateEmailAddressAlias</a>: Removes the alias association between two email addresses in an Amazon Connect instance.</p></li>
59/// <li>
60/// <p><a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeEmailAddress.html">DescribeEmailAddress</a>: View current alias configurations for an email address.</p></li>
61/// <li>
62/// <p><a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_SearchEmailAddresses.html">SearchEmailAddresses</a>: Find email addresses and their alias relationships across an instance.</p></li>
63/// <li>
64/// <p><a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateEmailAddress.html">CreateEmailAddress</a>: Create new email addresses that can participate in alias relationships.</p></li>
65/// <li>
66/// <p><a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_DeleteEmailAddress.html">DeleteEmailAddress</a>: Remove email addresses (automatically removes any alias relationships).</p></li>
67/// <li>
68/// <p><a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateEmailAddressMetadata.html">UpdateEmailAddressMetadata</a>: Modify email address properties (does not affect alias relationships).</p></li>
69/// </ul>
70#[derive(::std::clone::Clone, ::std::fmt::Debug)]
71pub struct AssociateEmailAddressAliasFluentBuilder {
72 handle: ::std::sync::Arc<crate::client::Handle>,
73 inner: crate::operation::associate_email_address_alias::builders::AssociateEmailAddressAliasInputBuilder,
74 config_override: ::std::option::Option<crate::config::Builder>,
75}
76impl
77 crate::client::customize::internal::CustomizableSend<
78 crate::operation::associate_email_address_alias::AssociateEmailAddressAliasOutput,
79 crate::operation::associate_email_address_alias::AssociateEmailAddressAliasError,
80 > for AssociateEmailAddressAliasFluentBuilder
81{
82 fn send(
83 self,
84 config_override: crate::config::Builder,
85 ) -> crate::client::customize::internal::BoxFuture<
86 crate::client::customize::internal::SendResult<
87 crate::operation::associate_email_address_alias::AssociateEmailAddressAliasOutput,
88 crate::operation::associate_email_address_alias::AssociateEmailAddressAliasError,
89 >,
90 > {
91 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
92 }
93}
94impl AssociateEmailAddressAliasFluentBuilder {
95 /// Creates a new `AssociateEmailAddressAliasFluentBuilder`.
96 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
97 Self {
98 handle,
99 inner: ::std::default::Default::default(),
100 config_override: ::std::option::Option::None,
101 }
102 }
103 /// Access the AssociateEmailAddressAlias as a reference.
104 pub fn as_input(&self) -> &crate::operation::associate_email_address_alias::builders::AssociateEmailAddressAliasInputBuilder {
105 &self.inner
106 }
107 /// Sends the request and returns the response.
108 ///
109 /// If an error occurs, an `SdkError` will be returned with additional details that
110 /// can be matched against.
111 ///
112 /// By default, any retryable failures will be retried twice. Retry behavior
113 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
114 /// set when configuring the client.
115 pub async fn send(
116 self,
117 ) -> ::std::result::Result<
118 crate::operation::associate_email_address_alias::AssociateEmailAddressAliasOutput,
119 ::aws_smithy_runtime_api::client::result::SdkError<
120 crate::operation::associate_email_address_alias::AssociateEmailAddressAliasError,
121 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
122 >,
123 > {
124 let input = self
125 .inner
126 .build()
127 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
128 let runtime_plugins = crate::operation::associate_email_address_alias::AssociateEmailAddressAlias::operation_runtime_plugins(
129 self.handle.runtime_plugins.clone(),
130 &self.handle.conf,
131 self.config_override,
132 );
133 crate::operation::associate_email_address_alias::AssociateEmailAddressAlias::orchestrate(&runtime_plugins, input).await
134 }
135
136 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
137 pub fn customize(
138 self,
139 ) -> crate::client::customize::CustomizableOperation<
140 crate::operation::associate_email_address_alias::AssociateEmailAddressAliasOutput,
141 crate::operation::associate_email_address_alias::AssociateEmailAddressAliasError,
142 Self,
143 > {
144 crate::client::customize::CustomizableOperation::new(self)
145 }
146 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
147 self.set_config_override(::std::option::Option::Some(config_override.into()));
148 self
149 }
150
151 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
152 self.config_override = config_override;
153 self
154 }
155 /// <p>The identifier of the email address.</p>
156 pub fn email_address_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
157 self.inner = self.inner.email_address_id(input.into());
158 self
159 }
160 /// <p>The identifier of the email address.</p>
161 pub fn set_email_address_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
162 self.inner = self.inner.set_email_address_id(input);
163 self
164 }
165 /// <p>The identifier of the email address.</p>
166 pub fn get_email_address_id(&self) -> &::std::option::Option<::std::string::String> {
167 self.inner.get_email_address_id()
168 }
169 /// <p>The identifier of the Amazon Connect instance. You can <a href="https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html">find the instance ID</a> in the Amazon Resource Name (ARN) of the instance.</p>
170 pub fn instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
171 self.inner = self.inner.instance_id(input.into());
172 self
173 }
174 /// <p>The identifier of the Amazon Connect instance. You can <a href="https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html">find the instance ID</a> in the Amazon Resource Name (ARN) of the instance.</p>
175 pub fn set_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
176 self.inner = self.inner.set_instance_id(input);
177 self
178 }
179 /// <p>The identifier of the Amazon Connect instance. You can <a href="https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html">find the instance ID</a> in the Amazon Resource Name (ARN) of the instance.</p>
180 pub fn get_instance_id(&self) -> &::std::option::Option<::std::string::String> {
181 self.inner.get_instance_id()
182 }
183 /// <p>Configuration object that specifies which email address will serve as the alias. The specified email address must already exist in the Amazon Connect instance and cannot already be configured as an alias or have an alias of its own.</p>
184 pub fn alias_configuration(mut self, input: crate::types::AliasConfiguration) -> Self {
185 self.inner = self.inner.alias_configuration(input);
186 self
187 }
188 /// <p>Configuration object that specifies which email address will serve as the alias. The specified email address must already exist in the Amazon Connect instance and cannot already be configured as an alias or have an alias of its own.</p>
189 pub fn set_alias_configuration(mut self, input: ::std::option::Option<crate::types::AliasConfiguration>) -> Self {
190 self.inner = self.inner.set_alias_configuration(input);
191 self
192 }
193 /// <p>Configuration object that specifies which email address will serve as the alias. The specified email address must already exist in the Amazon Connect instance and cannot already be configured as an alias or have an alias of its own.</p>
194 pub fn get_alias_configuration(&self) -> &::std::option::Option<crate::types::AliasConfiguration> {
195 self.inner.get_alias_configuration()
196 }
197 /// <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see <a href="https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/">Making retries safe with idempotent APIs</a>.</p>
198 pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
199 self.inner = self.inner.client_token(input.into());
200 self
201 }
202 /// <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see <a href="https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/">Making retries safe with idempotent APIs</a>.</p>
203 pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
204 self.inner = self.inner.set_client_token(input);
205 self
206 }
207 /// <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see <a href="https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/">Making retries safe with idempotent APIs</a>.</p>
208 pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
209 self.inner.get_client_token()
210 }
211}