aws_sdk_connect/operation/start_chat_contact/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::start_chat_contact::_start_chat_contact_output::StartChatContactOutputBuilder;
3
4pub use crate::operation::start_chat_contact::_start_chat_contact_input::StartChatContactInputBuilder;
5
6impl crate::operation::start_chat_contact::builders::StartChatContactInputBuilder {
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::start_chat_contact::StartChatContactOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::start_chat_contact::StartChatContactError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.start_chat_contact();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `StartChatContact`.
24///
25/// <p>Initiates a flow to start a new chat for the customer. Response of this API provides a token required to obtain credentials from the <a href="https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html">CreateParticipantConnection</a> API in the Amazon Connect Participant Service.</p>
26/// <p>When a new chat contact is successfully created, clients must subscribe to the participant’s connection for the created chat within 5 minutes. This is achieved by invoking <a href="https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html">CreateParticipantConnection</a> with WEBSOCKET and CONNECTION_CREDENTIALS.</p>
27/// <p>A 429 error occurs in the following situations:</p>
28/// <ul>
29/// <li>
30/// <p>API rate limit is exceeded. API TPS throttling returns a <code>TooManyRequests</code> exception.</p></li>
31/// <li>
32/// <p>The <a href="https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-service-limits.html">quota for concurrent active chats</a> is exceeded. Active chat throttling returns a <code>LimitExceededException</code>.</p></li>
33/// </ul>
34/// <p>If you use the <code>ChatDurationInMinutes</code> parameter and receive a 400 error, your account may not support the ability to configure custom chat durations. For more information, contact Amazon Web Services Support.</p>
35/// <p>For more information about chat, see the following topics in the <i>Amazon Connect Administrator Guide</i>:</p>
36/// <ul>
37/// <li>
38/// <p><a href="https://docs.aws.amazon.com/connect/latest/adminguide/web-and-mobile-chat.html">Concepts: Web and mobile messaging capabilities in Amazon Connect</a></p></li>
39/// <li>
40/// <p><a href="https://docs.aws.amazon.com/connect/latest/adminguide/security-best-practices.html#bp-security-chat">Amazon Connect Chat security best practices</a></p></li>
41/// </ul>
42#[derive(::std::clone::Clone, ::std::fmt::Debug)]
43pub struct StartChatContactFluentBuilder {
44 handle: ::std::sync::Arc<crate::client::Handle>,
45 inner: crate::operation::start_chat_contact::builders::StartChatContactInputBuilder,
46 config_override: ::std::option::Option<crate::config::Builder>,
47}
48impl
49 crate::client::customize::internal::CustomizableSend<
50 crate::operation::start_chat_contact::StartChatContactOutput,
51 crate::operation::start_chat_contact::StartChatContactError,
52 > for StartChatContactFluentBuilder
53{
54 fn send(
55 self,
56 config_override: crate::config::Builder,
57 ) -> crate::client::customize::internal::BoxFuture<
58 crate::client::customize::internal::SendResult<
59 crate::operation::start_chat_contact::StartChatContactOutput,
60 crate::operation::start_chat_contact::StartChatContactError,
61 >,
62 > {
63 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
64 }
65}
66impl StartChatContactFluentBuilder {
67 /// Creates a new `StartChatContactFluentBuilder`.
68 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
69 Self {
70 handle,
71 inner: ::std::default::Default::default(),
72 config_override: ::std::option::Option::None,
73 }
74 }
75 /// Access the StartChatContact as a reference.
76 pub fn as_input(&self) -> &crate::operation::start_chat_contact::builders::StartChatContactInputBuilder {
77 &self.inner
78 }
79 /// Sends the request and returns the response.
80 ///
81 /// If an error occurs, an `SdkError` will be returned with additional details that
82 /// can be matched against.
83 ///
84 /// By default, any retryable failures will be retried twice. Retry behavior
85 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
86 /// set when configuring the client.
87 pub async fn send(
88 self,
89 ) -> ::std::result::Result<
90 crate::operation::start_chat_contact::StartChatContactOutput,
91 ::aws_smithy_runtime_api::client::result::SdkError<
92 crate::operation::start_chat_contact::StartChatContactError,
93 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
94 >,
95 > {
96 let input = self
97 .inner
98 .build()
99 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
100 let runtime_plugins = crate::operation::start_chat_contact::StartChatContact::operation_runtime_plugins(
101 self.handle.runtime_plugins.clone(),
102 &self.handle.conf,
103 self.config_override,
104 );
105 crate::operation::start_chat_contact::StartChatContact::orchestrate(&runtime_plugins, input).await
106 }
107
108 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
109 pub fn customize(
110 self,
111 ) -> crate::client::customize::CustomizableOperation<
112 crate::operation::start_chat_contact::StartChatContactOutput,
113 crate::operation::start_chat_contact::StartChatContactError,
114 Self,
115 > {
116 crate::client::customize::CustomizableOperation::new(self)
117 }
118 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
119 self.set_config_override(::std::option::Option::Some(config_override.into()));
120 self
121 }
122
123 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
124 self.config_override = config_override;
125 self
126 }
127 /// <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>
128 pub fn instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
129 self.inner = self.inner.instance_id(input.into());
130 self
131 }
132 /// <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>
133 pub fn set_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
134 self.inner = self.inner.set_instance_id(input);
135 self
136 }
137 /// <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>
138 pub fn get_instance_id(&self) -> &::std::option::Option<::std::string::String> {
139 self.inner.get_instance_id()
140 }
141 /// <p>The identifier of the flow for initiating the chat. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to <b>Routing</b>, <b>Flows</b>. Choose the flow. On the flow page, under the name of the flow, choose <b>Show additional flow information</b>. The ContactFlowId is the last part of the ARN, shown here in bold:</p>
142 /// <p>arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/<b>846ec553-a005-41c0-8341-xxxxxxxxxxxx</b></p>
143 pub fn contact_flow_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
144 self.inner = self.inner.contact_flow_id(input.into());
145 self
146 }
147 /// <p>The identifier of the flow for initiating the chat. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to <b>Routing</b>, <b>Flows</b>. Choose the flow. On the flow page, under the name of the flow, choose <b>Show additional flow information</b>. The ContactFlowId is the last part of the ARN, shown here in bold:</p>
148 /// <p>arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/<b>846ec553-a005-41c0-8341-xxxxxxxxxxxx</b></p>
149 pub fn set_contact_flow_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
150 self.inner = self.inner.set_contact_flow_id(input);
151 self
152 }
153 /// <p>The identifier of the flow for initiating the chat. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to <b>Routing</b>, <b>Flows</b>. Choose the flow. On the flow page, under the name of the flow, choose <b>Show additional flow information</b>. The ContactFlowId is the last part of the ARN, shown here in bold:</p>
154 /// <p>arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/<b>846ec553-a005-41c0-8341-xxxxxxxxxxxx</b></p>
155 pub fn get_contact_flow_id(&self) -> &::std::option::Option<::std::string::String> {
156 self.inner.get_contact_flow_id()
157 }
158 ///
159 /// Adds a key-value pair to `Attributes`.
160 ///
161 /// To override the contents of this collection use [`set_attributes`](Self::set_attributes).
162 ///
163 /// <p>A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows just like any other contact attributes.</p>
164 /// <p>There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.</p>
165 pub fn attributes(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
166 self.inner = self.inner.attributes(k.into(), v.into());
167 self
168 }
169 /// <p>A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows just like any other contact attributes.</p>
170 /// <p>There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.</p>
171 pub fn set_attributes(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
172 self.inner = self.inner.set_attributes(input);
173 self
174 }
175 /// <p>A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows just like any other contact attributes.</p>
176 /// <p>There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.</p>
177 pub fn get_attributes(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
178 self.inner.get_attributes()
179 }
180 /// <p>Information identifying the participant.</p>
181 pub fn participant_details(mut self, input: crate::types::ParticipantDetails) -> Self {
182 self.inner = self.inner.participant_details(input);
183 self
184 }
185 /// <p>Information identifying the participant.</p>
186 pub fn set_participant_details(mut self, input: ::std::option::Option<crate::types::ParticipantDetails>) -> Self {
187 self.inner = self.inner.set_participant_details(input);
188 self
189 }
190 /// <p>Information identifying the participant.</p>
191 pub fn get_participant_details(&self) -> &::std::option::Option<crate::types::ParticipantDetails> {
192 self.inner.get_participant_details()
193 }
194 /// <p>The configuration of the participant.</p>
195 pub fn participant_configuration(mut self, input: crate::types::ParticipantConfiguration) -> Self {
196 self.inner = self.inner.participant_configuration(input);
197 self
198 }
199 /// <p>The configuration of the participant.</p>
200 pub fn set_participant_configuration(mut self, input: ::std::option::Option<crate::types::ParticipantConfiguration>) -> Self {
201 self.inner = self.inner.set_participant_configuration(input);
202 self
203 }
204 /// <p>The configuration of the participant.</p>
205 pub fn get_participant_configuration(&self) -> &::std::option::Option<crate::types::ParticipantConfiguration> {
206 self.inner.get_participant_configuration()
207 }
208 /// <p>The initial message to be sent to the newly created chat.</p>
209 pub fn initial_message(mut self, input: crate::types::ChatMessage) -> Self {
210 self.inner = self.inner.initial_message(input);
211 self
212 }
213 /// <p>The initial message to be sent to the newly created chat.</p>
214 pub fn set_initial_message(mut self, input: ::std::option::Option<crate::types::ChatMessage>) -> Self {
215 self.inner = self.inner.set_initial_message(input);
216 self
217 }
218 /// <p>The initial message to be sent to the newly created chat.</p>
219 pub fn get_initial_message(&self) -> &::std::option::Option<crate::types::ChatMessage> {
220 self.inner.get_initial_message()
221 }
222 /// <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>
223 pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
224 self.inner = self.inner.client_token(input.into());
225 self
226 }
227 /// <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>
228 pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
229 self.inner = self.inner.set_client_token(input);
230 self
231 }
232 /// <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>
233 pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
234 self.inner.get_client_token()
235 }
236 /// <p>The total duration of the newly started chat session. If not specified, the chat session duration defaults to 25 hour. The minimum configurable time is 60 minutes. The maximum configurable time is 10,080 minutes (7 days).</p>
237 pub fn chat_duration_in_minutes(mut self, input: i32) -> Self {
238 self.inner = self.inner.chat_duration_in_minutes(input);
239 self
240 }
241 /// <p>The total duration of the newly started chat session. If not specified, the chat session duration defaults to 25 hour. The minimum configurable time is 60 minutes. The maximum configurable time is 10,080 minutes (7 days).</p>
242 pub fn set_chat_duration_in_minutes(mut self, input: ::std::option::Option<i32>) -> Self {
243 self.inner = self.inner.set_chat_duration_in_minutes(input);
244 self
245 }
246 /// <p>The total duration of the newly started chat session. If not specified, the chat session duration defaults to 25 hour. The minimum configurable time is 60 minutes. The maximum configurable time is 10,080 minutes (7 days).</p>
247 pub fn get_chat_duration_in_minutes(&self) -> &::std::option::Option<i32> {
248 self.inner.get_chat_duration_in_minutes()
249 }
250 ///
251 /// Appends an item to `SupportedMessagingContentTypes`.
252 ///
253 /// To override the contents of this collection use [`set_supported_messaging_content_types`](Self::set_supported_messaging_content_types).
254 ///
255 /// <p>The supported chat message content types. Supported types are <code>text/plain</code>, <code>text/markdown</code>, <code>application/json</code>, <code>application/vnd.amazonaws.connect.message.interactive</code>, and <code>application/vnd.amazonaws.connect.message.interactive.response</code>.</p>
256 /// <p>Content types must always contain <code>text/plain</code>. You can then put any other supported type in the list. For example, all the following lists are valid because they contain <code>text/plain</code>: <code>\[text/plain, text/markdown, application/json\]</code>, <code>\[text/markdown, text/plain\]</code>, <code>\[text/plain, application/json, application/vnd.amazonaws.connect.message.interactive.response\]</code>.</p><note>
257 /// <p>The type <code>application/vnd.amazonaws.connect.message.interactive</code> is required to use the <a href="https://docs.aws.amazon.com/connect/latest/adminguide/show-view-block.html">Show view</a> flow block.</p>
258 /// </note>
259 pub fn supported_messaging_content_types(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
260 self.inner = self.inner.supported_messaging_content_types(input.into());
261 self
262 }
263 /// <p>The supported chat message content types. Supported types are <code>text/plain</code>, <code>text/markdown</code>, <code>application/json</code>, <code>application/vnd.amazonaws.connect.message.interactive</code>, and <code>application/vnd.amazonaws.connect.message.interactive.response</code>.</p>
264 /// <p>Content types must always contain <code>text/plain</code>. You can then put any other supported type in the list. For example, all the following lists are valid because they contain <code>text/plain</code>: <code>\[text/plain, text/markdown, application/json\]</code>, <code>\[text/markdown, text/plain\]</code>, <code>\[text/plain, application/json, application/vnd.amazonaws.connect.message.interactive.response\]</code>.</p><note>
265 /// <p>The type <code>application/vnd.amazonaws.connect.message.interactive</code> is required to use the <a href="https://docs.aws.amazon.com/connect/latest/adminguide/show-view-block.html">Show view</a> flow block.</p>
266 /// </note>
267 pub fn set_supported_messaging_content_types(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
268 self.inner = self.inner.set_supported_messaging_content_types(input);
269 self
270 }
271 /// <p>The supported chat message content types. Supported types are <code>text/plain</code>, <code>text/markdown</code>, <code>application/json</code>, <code>application/vnd.amazonaws.connect.message.interactive</code>, and <code>application/vnd.amazonaws.connect.message.interactive.response</code>.</p>
272 /// <p>Content types must always contain <code>text/plain</code>. You can then put any other supported type in the list. For example, all the following lists are valid because they contain <code>text/plain</code>: <code>\[text/plain, text/markdown, application/json\]</code>, <code>\[text/markdown, text/plain\]</code>, <code>\[text/plain, application/json, application/vnd.amazonaws.connect.message.interactive.response\]</code>.</p><note>
273 /// <p>The type <code>application/vnd.amazonaws.connect.message.interactive</code> is required to use the <a href="https://docs.aws.amazon.com/connect/latest/adminguide/show-view-block.html">Show view</a> flow block.</p>
274 /// </note>
275 pub fn get_supported_messaging_content_types(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
276 self.inner.get_supported_messaging_content_types()
277 }
278 /// <p>Enable persistent chats. For more information about enabling persistent chat, and for example use cases and how to configure for them, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/chat-persistence.html">Enable persistent chat</a>.</p>
279 pub fn persistent_chat(mut self, input: crate::types::PersistentChat) -> Self {
280 self.inner = self.inner.persistent_chat(input);
281 self
282 }
283 /// <p>Enable persistent chats. For more information about enabling persistent chat, and for example use cases and how to configure for them, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/chat-persistence.html">Enable persistent chat</a>.</p>
284 pub fn set_persistent_chat(mut self, input: ::std::option::Option<crate::types::PersistentChat>) -> Self {
285 self.inner = self.inner.set_persistent_chat(input);
286 self
287 }
288 /// <p>Enable persistent chats. For more information about enabling persistent chat, and for example use cases and how to configure for them, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/chat-persistence.html">Enable persistent chat</a>.</p>
289 pub fn get_persistent_chat(&self) -> &::std::option::Option<crate::types::PersistentChat> {
290 self.inner.get_persistent_chat()
291 }
292 /// <p>The unique identifier for an Amazon Connect contact. This identifier is related to the chat starting.</p><note>
293 /// <p>You cannot provide data for both RelatedContactId and PersistentChat.</p>
294 /// </note>
295 pub fn related_contact_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
296 self.inner = self.inner.related_contact_id(input.into());
297 self
298 }
299 /// <p>The unique identifier for an Amazon Connect contact. This identifier is related to the chat starting.</p><note>
300 /// <p>You cannot provide data for both RelatedContactId and PersistentChat.</p>
301 /// </note>
302 pub fn set_related_contact_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
303 self.inner = self.inner.set_related_contact_id(input);
304 self
305 }
306 /// <p>The unique identifier for an Amazon Connect contact. This identifier is related to the chat starting.</p><note>
307 /// <p>You cannot provide data for both RelatedContactId and PersistentChat.</p>
308 /// </note>
309 pub fn get_related_contact_id(&self) -> &::std::option::Option<::std::string::String> {
310 self.inner.get_related_contact_id()
311 }
312 ///
313 /// Adds a key-value pair to `SegmentAttributes`.
314 ///
315 /// To override the contents of this collection use [`set_segment_attributes`](Self::set_segment_attributes).
316 ///
317 /// <p>A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.</p>
318 /// <p>Attribute keys can include only alphanumeric, -, and _.</p>
319 /// <p>This field can be used to show channel subtype, such as <code>connect:Guide</code>.</p><note>
320 /// <p>The types <code>application/vnd.amazonaws.connect.message.interactive</code> and <code>application/vnd.amazonaws.connect.message.interactive.response</code> must be present in the SupportedMessagingContentTypes field of this API in order to set <code>SegmentAttributes</code> as {<code> "connect:Subtype": {"valueString" : "connect:Guide" }}</code>.</p>
321 /// </note>
322 pub fn segment_attributes(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::SegmentAttributeValue) -> Self {
323 self.inner = self.inner.segment_attributes(k.into(), v);
324 self
325 }
326 /// <p>A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.</p>
327 /// <p>Attribute keys can include only alphanumeric, -, and _.</p>
328 /// <p>This field can be used to show channel subtype, such as <code>connect:Guide</code>.</p><note>
329 /// <p>The types <code>application/vnd.amazonaws.connect.message.interactive</code> and <code>application/vnd.amazonaws.connect.message.interactive.response</code> must be present in the SupportedMessagingContentTypes field of this API in order to set <code>SegmentAttributes</code> as {<code> "connect:Subtype": {"valueString" : "connect:Guide" }}</code>.</p>
330 /// </note>
331 pub fn set_segment_attributes(
332 mut self,
333 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::SegmentAttributeValue>>,
334 ) -> Self {
335 self.inner = self.inner.set_segment_attributes(input);
336 self
337 }
338 /// <p>A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.</p>
339 /// <p>Attribute keys can include only alphanumeric, -, and _.</p>
340 /// <p>This field can be used to show channel subtype, such as <code>connect:Guide</code>.</p><note>
341 /// <p>The types <code>application/vnd.amazonaws.connect.message.interactive</code> and <code>application/vnd.amazonaws.connect.message.interactive.response</code> must be present in the SupportedMessagingContentTypes field of this API in order to set <code>SegmentAttributes</code> as {<code> "connect:Subtype": {"valueString" : "connect:Guide" }}</code>.</p>
342 /// </note>
343 pub fn get_segment_attributes(
344 &self,
345 ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::SegmentAttributeValue>> {
346 self.inner.get_segment_attributes()
347 }
348 /// <p>The customer's identification number. For example, the <code>CustomerId</code> may be a customer number from your CRM.</p>
349 pub fn customer_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
350 self.inner = self.inner.customer_id(input.into());
351 self
352 }
353 /// <p>The customer's identification number. For example, the <code>CustomerId</code> may be a customer number from your CRM.</p>
354 pub fn set_customer_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
355 self.inner = self.inner.set_customer_id(input);
356 self
357 }
358 /// <p>The customer's identification number. For example, the <code>CustomerId</code> may be a customer number from your CRM.</p>
359 pub fn get_customer_id(&self) -> &::std::option::Option<::std::string::String> {
360 self.inner.get_customer_id()
361 }
362}