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 initial message to be sent to the newly created chat.</p>
195 pub fn initial_message(mut self, input: crate::types::ChatMessage) -> Self {
196 self.inner = self.inner.initial_message(input);
197 self
198 }
199 /// <p>The initial message to be sent to the newly created chat.</p>
200 pub fn set_initial_message(mut self, input: ::std::option::Option<crate::types::ChatMessage>) -> Self {
201 self.inner = self.inner.set_initial_message(input);
202 self
203 }
204 /// <p>The initial message to be sent to the newly created chat.</p>
205 pub fn get_initial_message(&self) -> &::std::option::Option<crate::types::ChatMessage> {
206 self.inner.get_initial_message()
207 }
208 /// <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>
209 pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
210 self.inner = self.inner.client_token(input.into());
211 self
212 }
213 /// <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>
214 pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
215 self.inner = self.inner.set_client_token(input);
216 self
217 }
218 /// <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>
219 pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
220 self.inner.get_client_token()
221 }
222 /// <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>
223 pub fn chat_duration_in_minutes(mut self, input: i32) -> Self {
224 self.inner = self.inner.chat_duration_in_minutes(input);
225 self
226 }
227 /// <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>
228 pub fn set_chat_duration_in_minutes(mut self, input: ::std::option::Option<i32>) -> Self {
229 self.inner = self.inner.set_chat_duration_in_minutes(input);
230 self
231 }
232 /// <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>
233 pub fn get_chat_duration_in_minutes(&self) -> &::std::option::Option<i32> {
234 self.inner.get_chat_duration_in_minutes()
235 }
236 ///
237 /// Appends an item to `SupportedMessagingContentTypes`.
238 ///
239 /// To override the contents of this collection use [`set_supported_messaging_content_types`](Self::set_supported_messaging_content_types).
240 ///
241 /// <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>
242 /// <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>
243 /// <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>
244 /// </note>
245 pub fn supported_messaging_content_types(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
246 self.inner = self.inner.supported_messaging_content_types(input.into());
247 self
248 }
249 /// <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>
250 /// <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>
251 /// <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>
252 /// </note>
253 pub fn set_supported_messaging_content_types(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
254 self.inner = self.inner.set_supported_messaging_content_types(input);
255 self
256 }
257 /// <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>
258 /// <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>
259 /// <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>
260 /// </note>
261 pub fn get_supported_messaging_content_types(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
262 self.inner.get_supported_messaging_content_types()
263 }
264 /// <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>
265 pub fn persistent_chat(mut self, input: crate::types::PersistentChat) -> Self {
266 self.inner = self.inner.persistent_chat(input);
267 self
268 }
269 /// <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>
270 pub fn set_persistent_chat(mut self, input: ::std::option::Option<crate::types::PersistentChat>) -> Self {
271 self.inner = self.inner.set_persistent_chat(input);
272 self
273 }
274 /// <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>
275 pub fn get_persistent_chat(&self) -> &::std::option::Option<crate::types::PersistentChat> {
276 self.inner.get_persistent_chat()
277 }
278 /// <p>The unique identifier for an Amazon Connect contact. This identifier is related to the chat starting.</p><note>
279 /// <p>You cannot provide data for both RelatedContactId and PersistentChat.</p>
280 /// </note>
281 pub fn related_contact_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
282 self.inner = self.inner.related_contact_id(input.into());
283 self
284 }
285 /// <p>The unique identifier for an Amazon Connect contact. This identifier is related to the chat starting.</p><note>
286 /// <p>You cannot provide data for both RelatedContactId and PersistentChat.</p>
287 /// </note>
288 pub fn set_related_contact_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
289 self.inner = self.inner.set_related_contact_id(input);
290 self
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 get_related_contact_id(&self) -> &::std::option::Option<::std::string::String> {
296 self.inner.get_related_contact_id()
297 }
298 ///
299 /// Adds a key-value pair to `SegmentAttributes`.
300 ///
301 /// To override the contents of this collection use [`set_segment_attributes`](Self::set_segment_attributes).
302 ///
303 /// <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>
304 /// <p>Attribute keys can include only alphanumeric, -, and _.</p>
305 /// <p>This field can be used to show channel subtype, such as <code>connect:Guide</code>.</p><note>
306 /// <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>
307 /// </note>
308 pub fn segment_attributes(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::SegmentAttributeValue) -> Self {
309 self.inner = self.inner.segment_attributes(k.into(), v);
310 self
311 }
312 /// <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>
313 /// <p>Attribute keys can include only alphanumeric, -, and _.</p>
314 /// <p>This field can be used to show channel subtype, such as <code>connect:Guide</code>.</p><note>
315 /// <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>
316 /// </note>
317 pub fn set_segment_attributes(
318 mut self,
319 input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::SegmentAttributeValue>>,
320 ) -> Self {
321 self.inner = self.inner.set_segment_attributes(input);
322 self
323 }
324 /// <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>
325 /// <p>Attribute keys can include only alphanumeric, -, and _.</p>
326 /// <p>This field can be used to show channel subtype, such as <code>connect:Guide</code>.</p><note>
327 /// <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>
328 /// </note>
329 pub fn get_segment_attributes(
330 &self,
331 ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::SegmentAttributeValue>> {
332 self.inner.get_segment_attributes()
333 }
334 /// <p>The customer's identification number. For example, the <code>CustomerId</code> may be a customer number from your CRM.</p>
335 pub fn customer_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
336 self.inner = self.inner.customer_id(input.into());
337 self
338 }
339 /// <p>The customer's identification number. For example, the <code>CustomerId</code> may be a customer number from your CRM.</p>
340 pub fn set_customer_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
341 self.inner = self.inner.set_customer_id(input);
342 self
343 }
344 /// <p>The customer's identification number. For example, the <code>CustomerId</code> may be a customer number from your CRM.</p>
345 pub fn get_customer_id(&self) -> &::std::option::Option<::std::string::String> {
346 self.inner.get_customer_id()
347 }
348}