aws_sdk_connect/operation/update_contact/
_update_contact_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
5pub struct UpdateContactInput {
6    /// <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>
7    pub instance_id: ::std::option::Option<::std::string::String>,
8    /// <p>The identifier of the contact. This is the identifier of the contact associated with the first interaction with your contact center.</p>
9    pub contact_id: ::std::option::Option<::std::string::String>,
10    /// <p>The name of the contact.</p>
11    pub name: ::std::option::Option<::std::string::String>,
12    /// <p>The description of the contact.</p>
13    pub description: ::std::option::Option<::std::string::String>,
14    /// <p>Well-formed data on contact, shown to agents on Contact Control Panel (CCP).</p>
15    pub references: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::Reference>>,
16    /// <p>A set of system defined key-value pairs stored on individual contact segments (unique contact ID) using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.</p>
17    /// <p>Attribute keys can include only alphanumeric, -, and _.</p>
18    /// <p>This field can be used to show channel subtype, such as <code>connect:Guide</code>.</p>
19    /// <p>Contact Expiry, and user-defined attributes (String - String) that are defined in predefined attributes, can be updated by using the UpdateContact API.</p>
20    pub segment_attributes: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::SegmentAttributeValue>>,
21    /// <p>Information about the queue associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i> Amazon Connect Administrator Guide</i>.</p>
22    pub queue_info: ::std::option::Option<crate::types::QueueInfoInput>,
23    /// <p>Information about the agent associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i> Amazon Connect Administrator Guide</i>.</p>
24    pub user_info: ::std::option::Option<crate::types::UserInfo>,
25    /// <p>The endpoint of the customer for which the contact was initiated. For external audio contacts, this is usually the end customer's phone number. This value can only be updated for external audio contacts. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
26    pub customer_endpoint: ::std::option::Option<crate::types::Endpoint>,
27    /// <p>External system endpoint for the contact was initiated. For external audio contacts, this is the phone number of the external system such as the contact center. This value can only be updated for external audio contacts. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
28    pub system_endpoint: ::std::option::Option<crate::types::Endpoint>,
29}
30impl UpdateContactInput {
31    /// <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>
32    pub fn instance_id(&self) -> ::std::option::Option<&str> {
33        self.instance_id.as_deref()
34    }
35    /// <p>The identifier of the contact. This is the identifier of the contact associated with the first interaction with your contact center.</p>
36    pub fn contact_id(&self) -> ::std::option::Option<&str> {
37        self.contact_id.as_deref()
38    }
39    /// <p>The name of the contact.</p>
40    pub fn name(&self) -> ::std::option::Option<&str> {
41        self.name.as_deref()
42    }
43    /// <p>The description of the contact.</p>
44    pub fn description(&self) -> ::std::option::Option<&str> {
45        self.description.as_deref()
46    }
47    /// <p>Well-formed data on contact, shown to agents on Contact Control Panel (CCP).</p>
48    pub fn references(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::Reference>> {
49        self.references.as_ref()
50    }
51    /// <p>A set of system defined key-value pairs stored on individual contact segments (unique contact ID) using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.</p>
52    /// <p>Attribute keys can include only alphanumeric, -, and _.</p>
53    /// <p>This field can be used to show channel subtype, such as <code>connect:Guide</code>.</p>
54    /// <p>Contact Expiry, and user-defined attributes (String - String) that are defined in predefined attributes, can be updated by using the UpdateContact API.</p>
55    pub fn segment_attributes(
56        &self,
57    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::SegmentAttributeValue>> {
58        self.segment_attributes.as_ref()
59    }
60    /// <p>Information about the queue associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i> Amazon Connect Administrator Guide</i>.</p>
61    pub fn queue_info(&self) -> ::std::option::Option<&crate::types::QueueInfoInput> {
62        self.queue_info.as_ref()
63    }
64    /// <p>Information about the agent associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i> Amazon Connect Administrator Guide</i>.</p>
65    pub fn user_info(&self) -> ::std::option::Option<&crate::types::UserInfo> {
66        self.user_info.as_ref()
67    }
68    /// <p>The endpoint of the customer for which the contact was initiated. For external audio contacts, this is usually the end customer's phone number. This value can only be updated for external audio contacts. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
69    pub fn customer_endpoint(&self) -> ::std::option::Option<&crate::types::Endpoint> {
70        self.customer_endpoint.as_ref()
71    }
72    /// <p>External system endpoint for the contact was initiated. For external audio contacts, this is the phone number of the external system such as the contact center. This value can only be updated for external audio contacts. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
73    pub fn system_endpoint(&self) -> ::std::option::Option<&crate::types::Endpoint> {
74        self.system_endpoint.as_ref()
75    }
76}
77impl ::std::fmt::Debug for UpdateContactInput {
78    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
79        let mut formatter = f.debug_struct("UpdateContactInput");
80        formatter.field("instance_id", &self.instance_id);
81        formatter.field("contact_id", &self.contact_id);
82        formatter.field("name", &"*** Sensitive Data Redacted ***");
83        formatter.field("description", &"*** Sensitive Data Redacted ***");
84        formatter.field("references", &self.references);
85        formatter.field("segment_attributes", &self.segment_attributes);
86        formatter.field("queue_info", &self.queue_info);
87        formatter.field("user_info", &self.user_info);
88        formatter.field("customer_endpoint", &self.customer_endpoint);
89        formatter.field("system_endpoint", &self.system_endpoint);
90        formatter.finish()
91    }
92}
93impl UpdateContactInput {
94    /// Creates a new builder-style object to manufacture [`UpdateContactInput`](crate::operation::update_contact::UpdateContactInput).
95    pub fn builder() -> crate::operation::update_contact::builders::UpdateContactInputBuilder {
96        crate::operation::update_contact::builders::UpdateContactInputBuilder::default()
97    }
98}
99
100/// A builder for [`UpdateContactInput`](crate::operation::update_contact::UpdateContactInput).
101#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
102#[non_exhaustive]
103pub struct UpdateContactInputBuilder {
104    pub(crate) instance_id: ::std::option::Option<::std::string::String>,
105    pub(crate) contact_id: ::std::option::Option<::std::string::String>,
106    pub(crate) name: ::std::option::Option<::std::string::String>,
107    pub(crate) description: ::std::option::Option<::std::string::String>,
108    pub(crate) references: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::Reference>>,
109    pub(crate) segment_attributes: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::SegmentAttributeValue>>,
110    pub(crate) queue_info: ::std::option::Option<crate::types::QueueInfoInput>,
111    pub(crate) user_info: ::std::option::Option<crate::types::UserInfo>,
112    pub(crate) customer_endpoint: ::std::option::Option<crate::types::Endpoint>,
113    pub(crate) system_endpoint: ::std::option::Option<crate::types::Endpoint>,
114}
115impl UpdateContactInputBuilder {
116    /// <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>
117    /// This field is required.
118    pub fn instance_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
119        self.instance_id = ::std::option::Option::Some(input.into());
120        self
121    }
122    /// <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>
123    pub fn set_instance_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
124        self.instance_id = input;
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 get_instance_id(&self) -> &::std::option::Option<::std::string::String> {
129        &self.instance_id
130    }
131    /// <p>The identifier of the contact. This is the identifier of the contact associated with the first interaction with your contact center.</p>
132    /// This field is required.
133    pub fn contact_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
134        self.contact_id = ::std::option::Option::Some(input.into());
135        self
136    }
137    /// <p>The identifier of the contact. This is the identifier of the contact associated with the first interaction with your contact center.</p>
138    pub fn set_contact_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
139        self.contact_id = input;
140        self
141    }
142    /// <p>The identifier of the contact. This is the identifier of the contact associated with the first interaction with your contact center.</p>
143    pub fn get_contact_id(&self) -> &::std::option::Option<::std::string::String> {
144        &self.contact_id
145    }
146    /// <p>The name of the contact.</p>
147    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
148        self.name = ::std::option::Option::Some(input.into());
149        self
150    }
151    /// <p>The name of the contact.</p>
152    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
153        self.name = input;
154        self
155    }
156    /// <p>The name of the contact.</p>
157    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
158        &self.name
159    }
160    /// <p>The description of the contact.</p>
161    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
162        self.description = ::std::option::Option::Some(input.into());
163        self
164    }
165    /// <p>The description of the contact.</p>
166    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
167        self.description = input;
168        self
169    }
170    /// <p>The description of the contact.</p>
171    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
172        &self.description
173    }
174    /// Adds a key-value pair to `references`.
175    ///
176    /// To override the contents of this collection use [`set_references`](Self::set_references).
177    ///
178    /// <p>Well-formed data on contact, shown to agents on Contact Control Panel (CCP).</p>
179    pub fn references(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::Reference) -> Self {
180        let mut hash_map = self.references.unwrap_or_default();
181        hash_map.insert(k.into(), v);
182        self.references = ::std::option::Option::Some(hash_map);
183        self
184    }
185    /// <p>Well-formed data on contact, shown to agents on Contact Control Panel (CCP).</p>
186    pub fn set_references(
187        mut self,
188        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::Reference>>,
189    ) -> Self {
190        self.references = input;
191        self
192    }
193    /// <p>Well-formed data on contact, shown to agents on Contact Control Panel (CCP).</p>
194    pub fn get_references(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::Reference>> {
195        &self.references
196    }
197    /// Adds a key-value pair to `segment_attributes`.
198    ///
199    /// To override the contents of this collection use [`set_segment_attributes`](Self::set_segment_attributes).
200    ///
201    /// <p>A set of system defined key-value pairs stored on individual contact segments (unique contact ID) using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.</p>
202    /// <p>Attribute keys can include only alphanumeric, -, and _.</p>
203    /// <p>This field can be used to show channel subtype, such as <code>connect:Guide</code>.</p>
204    /// <p>Contact Expiry, and user-defined attributes (String - String) that are defined in predefined attributes, can be updated by using the UpdateContact API.</p>
205    pub fn segment_attributes(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::SegmentAttributeValue) -> Self {
206        let mut hash_map = self.segment_attributes.unwrap_or_default();
207        hash_map.insert(k.into(), v);
208        self.segment_attributes = ::std::option::Option::Some(hash_map);
209        self
210    }
211    /// <p>A set of system defined key-value pairs stored on individual contact segments (unique contact ID) using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.</p>
212    /// <p>Attribute keys can include only alphanumeric, -, and _.</p>
213    /// <p>This field can be used to show channel subtype, such as <code>connect:Guide</code>.</p>
214    /// <p>Contact Expiry, and user-defined attributes (String - String) that are defined in predefined attributes, can be updated by using the UpdateContact API.</p>
215    pub fn set_segment_attributes(
216        mut self,
217        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::SegmentAttributeValue>>,
218    ) -> Self {
219        self.segment_attributes = input;
220        self
221    }
222    /// <p>A set of system defined key-value pairs stored on individual contact segments (unique contact ID) using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.</p>
223    /// <p>Attribute keys can include only alphanumeric, -, and _.</p>
224    /// <p>This field can be used to show channel subtype, such as <code>connect:Guide</code>.</p>
225    /// <p>Contact Expiry, and user-defined attributes (String - String) that are defined in predefined attributes, can be updated by using the UpdateContact API.</p>
226    pub fn get_segment_attributes(
227        &self,
228    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::SegmentAttributeValue>> {
229        &self.segment_attributes
230    }
231    /// <p>Information about the queue associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i> Amazon Connect Administrator Guide</i>.</p>
232    pub fn queue_info(mut self, input: crate::types::QueueInfoInput) -> Self {
233        self.queue_info = ::std::option::Option::Some(input);
234        self
235    }
236    /// <p>Information about the queue associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i> Amazon Connect Administrator Guide</i>.</p>
237    pub fn set_queue_info(mut self, input: ::std::option::Option<crate::types::QueueInfoInput>) -> Self {
238        self.queue_info = input;
239        self
240    }
241    /// <p>Information about the queue associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i> Amazon Connect Administrator Guide</i>.</p>
242    pub fn get_queue_info(&self) -> &::std::option::Option<crate::types::QueueInfoInput> {
243        &self.queue_info
244    }
245    /// <p>Information about the agent associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i> Amazon Connect Administrator Guide</i>.</p>
246    pub fn user_info(mut self, input: crate::types::UserInfo) -> Self {
247        self.user_info = ::std::option::Option::Some(input);
248        self
249    }
250    /// <p>Information about the agent associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i> Amazon Connect Administrator Guide</i>.</p>
251    pub fn set_user_info(mut self, input: ::std::option::Option<crate::types::UserInfo>) -> Self {
252        self.user_info = input;
253        self
254    }
255    /// <p>Information about the agent associated with a contact. This parameter can only be updated for external audio contacts. It is used when you integrate third-party systems with Contact Lens for analytics. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i> Amazon Connect Administrator Guide</i>.</p>
256    pub fn get_user_info(&self) -> &::std::option::Option<crate::types::UserInfo> {
257        &self.user_info
258    }
259    /// <p>The endpoint of the customer for which the contact was initiated. For external audio contacts, this is usually the end customer's phone number. This value can only be updated for external audio contacts. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
260    pub fn customer_endpoint(mut self, input: crate::types::Endpoint) -> Self {
261        self.customer_endpoint = ::std::option::Option::Some(input);
262        self
263    }
264    /// <p>The endpoint of the customer for which the contact was initiated. For external audio contacts, this is usually the end customer's phone number. This value can only be updated for external audio contacts. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
265    pub fn set_customer_endpoint(mut self, input: ::std::option::Option<crate::types::Endpoint>) -> Self {
266        self.customer_endpoint = input;
267        self
268    }
269    /// <p>The endpoint of the customer for which the contact was initiated. For external audio contacts, this is usually the end customer's phone number. This value can only be updated for external audio contacts. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
270    pub fn get_customer_endpoint(&self) -> &::std::option::Option<crate::types::Endpoint> {
271        &self.customer_endpoint
272    }
273    /// <p>External system endpoint for the contact was initiated. For external audio contacts, this is the phone number of the external system such as the contact center. This value can only be updated for external audio contacts. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
274    pub fn system_endpoint(mut self, input: crate::types::Endpoint) -> Self {
275        self.system_endpoint = ::std::option::Option::Some(input);
276        self
277    }
278    /// <p>External system endpoint for the contact was initiated. For external audio contacts, this is the phone number of the external system such as the contact center. This value can only be updated for external audio contacts. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
279    pub fn set_system_endpoint(mut self, input: ::std::option::Option<crate::types::Endpoint>) -> Self {
280        self.system_endpoint = input;
281        self
282    }
283    /// <p>External system endpoint for the contact was initiated. For external audio contacts, this is the phone number of the external system such as the contact center. This value can only be updated for external audio contacts. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-integration.html">Amazon Connect Contact Lens integration</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
284    pub fn get_system_endpoint(&self) -> &::std::option::Option<crate::types::Endpoint> {
285        &self.system_endpoint
286    }
287    /// Consumes the builder and constructs a [`UpdateContactInput`](crate::operation::update_contact::UpdateContactInput).
288    pub fn build(
289        self,
290    ) -> ::std::result::Result<crate::operation::update_contact::UpdateContactInput, ::aws_smithy_types::error::operation::BuildError> {
291        ::std::result::Result::Ok(crate::operation::update_contact::UpdateContactInput {
292            instance_id: self.instance_id,
293            contact_id: self.contact_id,
294            name: self.name,
295            description: self.description,
296            references: self.references,
297            segment_attributes: self.segment_attributes,
298            queue_info: self.queue_info,
299            user_info: self.user_info,
300            customer_endpoint: self.customer_endpoint,
301            system_endpoint: self.system_endpoint,
302        })
303    }
304}
305impl ::std::fmt::Debug for UpdateContactInputBuilder {
306    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
307        let mut formatter = f.debug_struct("UpdateContactInputBuilder");
308        formatter.field("instance_id", &self.instance_id);
309        formatter.field("contact_id", &self.contact_id);
310        formatter.field("name", &"*** Sensitive Data Redacted ***");
311        formatter.field("description", &"*** Sensitive Data Redacted ***");
312        formatter.field("references", &self.references);
313        formatter.field("segment_attributes", &self.segment_attributes);
314        formatter.field("queue_info", &self.queue_info);
315        formatter.field("user_info", &self.user_info);
316        formatter.field("customer_endpoint", &self.customer_endpoint);
317        formatter.field("system_endpoint", &self.system_endpoint);
318        formatter.finish()
319    }
320}