Skip to main content

aws_sdk_customerprofiles/operation/create_profile/
_create_profile_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 CreateProfileInput {
6    /// <p>The unique name of the domain.</p>
7    pub domain_name: ::std::option::Option<::std::string::String>,
8    /// <p>An account number that you have assigned to the customer.</p>
9    pub account_number: ::std::option::Option<::std::string::String>,
10    /// <p>Any additional information relevant to the customer’s profile.</p>
11    pub additional_information: ::std::option::Option<::std::string::String>,
12    /// <p>The type of profile used to describe the customer.</p>
13    pub party_type: ::std::option::Option<crate::types::PartyType>,
14    /// <p>The name of the customer’s business.</p>
15    pub business_name: ::std::option::Option<::std::string::String>,
16    /// <p>The customer’s first name.</p>
17    pub first_name: ::std::option::Option<::std::string::String>,
18    /// <p>The customer’s middle name.</p>
19    pub middle_name: ::std::option::Option<::std::string::String>,
20    /// <p>The customer’s last name.</p>
21    pub last_name: ::std::option::Option<::std::string::String>,
22    /// <p>The customer’s birth date.</p>
23    pub birth_date: ::std::option::Option<::std::string::String>,
24    /// <p>The gender with which the customer identifies.</p>
25    pub gender: ::std::option::Option<crate::types::Gender>,
26    /// <p>The customer’s phone number, which has not been specified as a mobile, home, or business number.</p>
27    pub phone_number: ::std::option::Option<::std::string::String>,
28    /// <p>The customer’s mobile phone number.</p>
29    pub mobile_phone_number: ::std::option::Option<::std::string::String>,
30    /// <p>The customer’s home phone number.</p>
31    pub home_phone_number: ::std::option::Option<::std::string::String>,
32    /// <p>The customer’s business phone number.</p>
33    pub business_phone_number: ::std::option::Option<::std::string::String>,
34    /// <p>The customer’s email address, which has not been specified as a personal or business address.</p>
35    pub email_address: ::std::option::Option<::std::string::String>,
36    /// <p>The customer’s personal email address.</p>
37    pub personal_email_address: ::std::option::Option<::std::string::String>,
38    /// <p>The customer’s business email address.</p>
39    pub business_email_address: ::std::option::Option<::std::string::String>,
40    /// <p>A generic address associated with the customer that is not mailing, shipping, or billing.</p>
41    pub address: ::std::option::Option<crate::types::Address>,
42    /// <p>The customer’s shipping address.</p>
43    pub shipping_address: ::std::option::Option<crate::types::Address>,
44    /// <p>The customer’s mailing address.</p>
45    pub mailing_address: ::std::option::Option<crate::types::Address>,
46    /// <p>The customer’s billing address.</p>
47    pub billing_address: ::std::option::Option<crate::types::Address>,
48    /// <p>A key value pair of attributes of a customer profile.</p>
49    pub attributes: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
50    /// <p>An alternative to <code>PartyType</code> which accepts any string as input.</p>
51    pub party_type_string: ::std::option::Option<::std::string::String>,
52    /// <p>An alternative to <code>Gender</code> which accepts any string as input.</p>
53    pub gender_string: ::std::option::Option<::std::string::String>,
54    /// <p>The type of the profile.</p>
55    pub profile_type: ::std::option::Option<crate::types::ProfileType>,
56    /// <p>Object that defines the preferred methods of engagement, per channel.</p>
57    pub engagement_preferences: ::std::option::Option<crate::types::EngagementPreferences>,
58}
59impl CreateProfileInput {
60    /// <p>The unique name of the domain.</p>
61    pub fn domain_name(&self) -> ::std::option::Option<&str> {
62        self.domain_name.as_deref()
63    }
64    /// <p>An account number that you have assigned to the customer.</p>
65    pub fn account_number(&self) -> ::std::option::Option<&str> {
66        self.account_number.as_deref()
67    }
68    /// <p>Any additional information relevant to the customer’s profile.</p>
69    pub fn additional_information(&self) -> ::std::option::Option<&str> {
70        self.additional_information.as_deref()
71    }
72    /// <p>The type of profile used to describe the customer.</p>
73    pub fn party_type(&self) -> ::std::option::Option<&crate::types::PartyType> {
74        self.party_type.as_ref()
75    }
76    /// <p>The name of the customer’s business.</p>
77    pub fn business_name(&self) -> ::std::option::Option<&str> {
78        self.business_name.as_deref()
79    }
80    /// <p>The customer’s first name.</p>
81    pub fn first_name(&self) -> ::std::option::Option<&str> {
82        self.first_name.as_deref()
83    }
84    /// <p>The customer’s middle name.</p>
85    pub fn middle_name(&self) -> ::std::option::Option<&str> {
86        self.middle_name.as_deref()
87    }
88    /// <p>The customer’s last name.</p>
89    pub fn last_name(&self) -> ::std::option::Option<&str> {
90        self.last_name.as_deref()
91    }
92    /// <p>The customer’s birth date.</p>
93    pub fn birth_date(&self) -> ::std::option::Option<&str> {
94        self.birth_date.as_deref()
95    }
96    /// <p>The gender with which the customer identifies.</p>
97    pub fn gender(&self) -> ::std::option::Option<&crate::types::Gender> {
98        self.gender.as_ref()
99    }
100    /// <p>The customer’s phone number, which has not been specified as a mobile, home, or business number.</p>
101    pub fn phone_number(&self) -> ::std::option::Option<&str> {
102        self.phone_number.as_deref()
103    }
104    /// <p>The customer’s mobile phone number.</p>
105    pub fn mobile_phone_number(&self) -> ::std::option::Option<&str> {
106        self.mobile_phone_number.as_deref()
107    }
108    /// <p>The customer’s home phone number.</p>
109    pub fn home_phone_number(&self) -> ::std::option::Option<&str> {
110        self.home_phone_number.as_deref()
111    }
112    /// <p>The customer’s business phone number.</p>
113    pub fn business_phone_number(&self) -> ::std::option::Option<&str> {
114        self.business_phone_number.as_deref()
115    }
116    /// <p>The customer’s email address, which has not been specified as a personal or business address.</p>
117    pub fn email_address(&self) -> ::std::option::Option<&str> {
118        self.email_address.as_deref()
119    }
120    /// <p>The customer’s personal email address.</p>
121    pub fn personal_email_address(&self) -> ::std::option::Option<&str> {
122        self.personal_email_address.as_deref()
123    }
124    /// <p>The customer’s business email address.</p>
125    pub fn business_email_address(&self) -> ::std::option::Option<&str> {
126        self.business_email_address.as_deref()
127    }
128    /// <p>A generic address associated with the customer that is not mailing, shipping, or billing.</p>
129    pub fn address(&self) -> ::std::option::Option<&crate::types::Address> {
130        self.address.as_ref()
131    }
132    /// <p>The customer’s shipping address.</p>
133    pub fn shipping_address(&self) -> ::std::option::Option<&crate::types::Address> {
134        self.shipping_address.as_ref()
135    }
136    /// <p>The customer’s mailing address.</p>
137    pub fn mailing_address(&self) -> ::std::option::Option<&crate::types::Address> {
138        self.mailing_address.as_ref()
139    }
140    /// <p>The customer’s billing address.</p>
141    pub fn billing_address(&self) -> ::std::option::Option<&crate::types::Address> {
142        self.billing_address.as_ref()
143    }
144    /// <p>A key value pair of attributes of a customer profile.</p>
145    pub fn attributes(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
146        self.attributes.as_ref()
147    }
148    /// <p>An alternative to <code>PartyType</code> which accepts any string as input.</p>
149    pub fn party_type_string(&self) -> ::std::option::Option<&str> {
150        self.party_type_string.as_deref()
151    }
152    /// <p>An alternative to <code>Gender</code> which accepts any string as input.</p>
153    pub fn gender_string(&self) -> ::std::option::Option<&str> {
154        self.gender_string.as_deref()
155    }
156    /// <p>The type of the profile.</p>
157    pub fn profile_type(&self) -> ::std::option::Option<&crate::types::ProfileType> {
158        self.profile_type.as_ref()
159    }
160    /// <p>Object that defines the preferred methods of engagement, per channel.</p>
161    pub fn engagement_preferences(&self) -> ::std::option::Option<&crate::types::EngagementPreferences> {
162        self.engagement_preferences.as_ref()
163    }
164}
165impl ::std::fmt::Debug for CreateProfileInput {
166    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
167        let mut formatter = f.debug_struct("CreateProfileInput");
168        formatter.field("domain_name", &self.domain_name);
169        formatter.field("account_number", &"*** Sensitive Data Redacted ***");
170        formatter.field("additional_information", &"*** Sensitive Data Redacted ***");
171        formatter.field("party_type", &"*** Sensitive Data Redacted ***");
172        formatter.field("business_name", &"*** Sensitive Data Redacted ***");
173        formatter.field("first_name", &"*** Sensitive Data Redacted ***");
174        formatter.field("middle_name", &"*** Sensitive Data Redacted ***");
175        formatter.field("last_name", &"*** Sensitive Data Redacted ***");
176        formatter.field("birth_date", &"*** Sensitive Data Redacted ***");
177        formatter.field("gender", &"*** Sensitive Data Redacted ***");
178        formatter.field("phone_number", &"*** Sensitive Data Redacted ***");
179        formatter.field("mobile_phone_number", &"*** Sensitive Data Redacted ***");
180        formatter.field("home_phone_number", &"*** Sensitive Data Redacted ***");
181        formatter.field("business_phone_number", &"*** Sensitive Data Redacted ***");
182        formatter.field("email_address", &"*** Sensitive Data Redacted ***");
183        formatter.field("personal_email_address", &"*** Sensitive Data Redacted ***");
184        formatter.field("business_email_address", &"*** Sensitive Data Redacted ***");
185        formatter.field("address", &"*** Sensitive Data Redacted ***");
186        formatter.field("shipping_address", &"*** Sensitive Data Redacted ***");
187        formatter.field("mailing_address", &"*** Sensitive Data Redacted ***");
188        formatter.field("billing_address", &"*** Sensitive Data Redacted ***");
189        formatter.field("attributes", &"*** Sensitive Data Redacted ***");
190        formatter.field("party_type_string", &"*** Sensitive Data Redacted ***");
191        formatter.field("gender_string", &"*** Sensitive Data Redacted ***");
192        formatter.field("profile_type", &"*** Sensitive Data Redacted ***");
193        formatter.field("engagement_preferences", &"*** Sensitive Data Redacted ***");
194        formatter.finish()
195    }
196}
197impl CreateProfileInput {
198    /// Creates a new builder-style object to manufacture [`CreateProfileInput`](crate::operation::create_profile::CreateProfileInput).
199    pub fn builder() -> crate::operation::create_profile::builders::CreateProfileInputBuilder {
200        crate::operation::create_profile::builders::CreateProfileInputBuilder::default()
201    }
202}
203
204/// A builder for [`CreateProfileInput`](crate::operation::create_profile::CreateProfileInput).
205#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
206#[non_exhaustive]
207pub struct CreateProfileInputBuilder {
208    pub(crate) domain_name: ::std::option::Option<::std::string::String>,
209    pub(crate) account_number: ::std::option::Option<::std::string::String>,
210    pub(crate) additional_information: ::std::option::Option<::std::string::String>,
211    pub(crate) party_type: ::std::option::Option<crate::types::PartyType>,
212    pub(crate) business_name: ::std::option::Option<::std::string::String>,
213    pub(crate) first_name: ::std::option::Option<::std::string::String>,
214    pub(crate) middle_name: ::std::option::Option<::std::string::String>,
215    pub(crate) last_name: ::std::option::Option<::std::string::String>,
216    pub(crate) birth_date: ::std::option::Option<::std::string::String>,
217    pub(crate) gender: ::std::option::Option<crate::types::Gender>,
218    pub(crate) phone_number: ::std::option::Option<::std::string::String>,
219    pub(crate) mobile_phone_number: ::std::option::Option<::std::string::String>,
220    pub(crate) home_phone_number: ::std::option::Option<::std::string::String>,
221    pub(crate) business_phone_number: ::std::option::Option<::std::string::String>,
222    pub(crate) email_address: ::std::option::Option<::std::string::String>,
223    pub(crate) personal_email_address: ::std::option::Option<::std::string::String>,
224    pub(crate) business_email_address: ::std::option::Option<::std::string::String>,
225    pub(crate) address: ::std::option::Option<crate::types::Address>,
226    pub(crate) shipping_address: ::std::option::Option<crate::types::Address>,
227    pub(crate) mailing_address: ::std::option::Option<crate::types::Address>,
228    pub(crate) billing_address: ::std::option::Option<crate::types::Address>,
229    pub(crate) attributes: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
230    pub(crate) party_type_string: ::std::option::Option<::std::string::String>,
231    pub(crate) gender_string: ::std::option::Option<::std::string::String>,
232    pub(crate) profile_type: ::std::option::Option<crate::types::ProfileType>,
233    pub(crate) engagement_preferences: ::std::option::Option<crate::types::EngagementPreferences>,
234}
235impl CreateProfileInputBuilder {
236    /// <p>The unique name of the domain.</p>
237    /// This field is required.
238    pub fn domain_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
239        self.domain_name = ::std::option::Option::Some(input.into());
240        self
241    }
242    /// <p>The unique name of the domain.</p>
243    pub fn set_domain_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
244        self.domain_name = input;
245        self
246    }
247    /// <p>The unique name of the domain.</p>
248    pub fn get_domain_name(&self) -> &::std::option::Option<::std::string::String> {
249        &self.domain_name
250    }
251    /// <p>An account number that you have assigned to the customer.</p>
252    pub fn account_number(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
253        self.account_number = ::std::option::Option::Some(input.into());
254        self
255    }
256    /// <p>An account number that you have assigned to the customer.</p>
257    pub fn set_account_number(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
258        self.account_number = input;
259        self
260    }
261    /// <p>An account number that you have assigned to the customer.</p>
262    pub fn get_account_number(&self) -> &::std::option::Option<::std::string::String> {
263        &self.account_number
264    }
265    /// <p>Any additional information relevant to the customer’s profile.</p>
266    pub fn additional_information(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
267        self.additional_information = ::std::option::Option::Some(input.into());
268        self
269    }
270    /// <p>Any additional information relevant to the customer’s profile.</p>
271    pub fn set_additional_information(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
272        self.additional_information = input;
273        self
274    }
275    /// <p>Any additional information relevant to the customer’s profile.</p>
276    pub fn get_additional_information(&self) -> &::std::option::Option<::std::string::String> {
277        &self.additional_information
278    }
279    /// <p>The type of profile used to describe the customer.</p>
280    pub fn party_type(mut self, input: crate::types::PartyType) -> Self {
281        self.party_type = ::std::option::Option::Some(input);
282        self
283    }
284    /// <p>The type of profile used to describe the customer.</p>
285    pub fn set_party_type(mut self, input: ::std::option::Option<crate::types::PartyType>) -> Self {
286        self.party_type = input;
287        self
288    }
289    /// <p>The type of profile used to describe the customer.</p>
290    pub fn get_party_type(&self) -> &::std::option::Option<crate::types::PartyType> {
291        &self.party_type
292    }
293    /// <p>The name of the customer’s business.</p>
294    pub fn business_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
295        self.business_name = ::std::option::Option::Some(input.into());
296        self
297    }
298    /// <p>The name of the customer’s business.</p>
299    pub fn set_business_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
300        self.business_name = input;
301        self
302    }
303    /// <p>The name of the customer’s business.</p>
304    pub fn get_business_name(&self) -> &::std::option::Option<::std::string::String> {
305        &self.business_name
306    }
307    /// <p>The customer’s first name.</p>
308    pub fn first_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
309        self.first_name = ::std::option::Option::Some(input.into());
310        self
311    }
312    /// <p>The customer’s first name.</p>
313    pub fn set_first_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
314        self.first_name = input;
315        self
316    }
317    /// <p>The customer’s first name.</p>
318    pub fn get_first_name(&self) -> &::std::option::Option<::std::string::String> {
319        &self.first_name
320    }
321    /// <p>The customer’s middle name.</p>
322    pub fn middle_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
323        self.middle_name = ::std::option::Option::Some(input.into());
324        self
325    }
326    /// <p>The customer’s middle name.</p>
327    pub fn set_middle_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
328        self.middle_name = input;
329        self
330    }
331    /// <p>The customer’s middle name.</p>
332    pub fn get_middle_name(&self) -> &::std::option::Option<::std::string::String> {
333        &self.middle_name
334    }
335    /// <p>The customer’s last name.</p>
336    pub fn last_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
337        self.last_name = ::std::option::Option::Some(input.into());
338        self
339    }
340    /// <p>The customer’s last name.</p>
341    pub fn set_last_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
342        self.last_name = input;
343        self
344    }
345    /// <p>The customer’s last name.</p>
346    pub fn get_last_name(&self) -> &::std::option::Option<::std::string::String> {
347        &self.last_name
348    }
349    /// <p>The customer’s birth date.</p>
350    pub fn birth_date(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
351        self.birth_date = ::std::option::Option::Some(input.into());
352        self
353    }
354    /// <p>The customer’s birth date.</p>
355    pub fn set_birth_date(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
356        self.birth_date = input;
357        self
358    }
359    /// <p>The customer’s birth date.</p>
360    pub fn get_birth_date(&self) -> &::std::option::Option<::std::string::String> {
361        &self.birth_date
362    }
363    /// <p>The gender with which the customer identifies.</p>
364    pub fn gender(mut self, input: crate::types::Gender) -> Self {
365        self.gender = ::std::option::Option::Some(input);
366        self
367    }
368    /// <p>The gender with which the customer identifies.</p>
369    pub fn set_gender(mut self, input: ::std::option::Option<crate::types::Gender>) -> Self {
370        self.gender = input;
371        self
372    }
373    /// <p>The gender with which the customer identifies.</p>
374    pub fn get_gender(&self) -> &::std::option::Option<crate::types::Gender> {
375        &self.gender
376    }
377    /// <p>The customer’s phone number, which has not been specified as a mobile, home, or business number.</p>
378    pub fn phone_number(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
379        self.phone_number = ::std::option::Option::Some(input.into());
380        self
381    }
382    /// <p>The customer’s phone number, which has not been specified as a mobile, home, or business number.</p>
383    pub fn set_phone_number(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
384        self.phone_number = input;
385        self
386    }
387    /// <p>The customer’s phone number, which has not been specified as a mobile, home, or business number.</p>
388    pub fn get_phone_number(&self) -> &::std::option::Option<::std::string::String> {
389        &self.phone_number
390    }
391    /// <p>The customer’s mobile phone number.</p>
392    pub fn mobile_phone_number(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
393        self.mobile_phone_number = ::std::option::Option::Some(input.into());
394        self
395    }
396    /// <p>The customer’s mobile phone number.</p>
397    pub fn set_mobile_phone_number(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
398        self.mobile_phone_number = input;
399        self
400    }
401    /// <p>The customer’s mobile phone number.</p>
402    pub fn get_mobile_phone_number(&self) -> &::std::option::Option<::std::string::String> {
403        &self.mobile_phone_number
404    }
405    /// <p>The customer’s home phone number.</p>
406    pub fn home_phone_number(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
407        self.home_phone_number = ::std::option::Option::Some(input.into());
408        self
409    }
410    /// <p>The customer’s home phone number.</p>
411    pub fn set_home_phone_number(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
412        self.home_phone_number = input;
413        self
414    }
415    /// <p>The customer’s home phone number.</p>
416    pub fn get_home_phone_number(&self) -> &::std::option::Option<::std::string::String> {
417        &self.home_phone_number
418    }
419    /// <p>The customer’s business phone number.</p>
420    pub fn business_phone_number(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
421        self.business_phone_number = ::std::option::Option::Some(input.into());
422        self
423    }
424    /// <p>The customer’s business phone number.</p>
425    pub fn set_business_phone_number(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
426        self.business_phone_number = input;
427        self
428    }
429    /// <p>The customer’s business phone number.</p>
430    pub fn get_business_phone_number(&self) -> &::std::option::Option<::std::string::String> {
431        &self.business_phone_number
432    }
433    /// <p>The customer’s email address, which has not been specified as a personal or business address.</p>
434    pub fn email_address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
435        self.email_address = ::std::option::Option::Some(input.into());
436        self
437    }
438    /// <p>The customer’s email address, which has not been specified as a personal or business address.</p>
439    pub fn set_email_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
440        self.email_address = input;
441        self
442    }
443    /// <p>The customer’s email address, which has not been specified as a personal or business address.</p>
444    pub fn get_email_address(&self) -> &::std::option::Option<::std::string::String> {
445        &self.email_address
446    }
447    /// <p>The customer’s personal email address.</p>
448    pub fn personal_email_address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
449        self.personal_email_address = ::std::option::Option::Some(input.into());
450        self
451    }
452    /// <p>The customer’s personal email address.</p>
453    pub fn set_personal_email_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
454        self.personal_email_address = input;
455        self
456    }
457    /// <p>The customer’s personal email address.</p>
458    pub fn get_personal_email_address(&self) -> &::std::option::Option<::std::string::String> {
459        &self.personal_email_address
460    }
461    /// <p>The customer’s business email address.</p>
462    pub fn business_email_address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
463        self.business_email_address = ::std::option::Option::Some(input.into());
464        self
465    }
466    /// <p>The customer’s business email address.</p>
467    pub fn set_business_email_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
468        self.business_email_address = input;
469        self
470    }
471    /// <p>The customer’s business email address.</p>
472    pub fn get_business_email_address(&self) -> &::std::option::Option<::std::string::String> {
473        &self.business_email_address
474    }
475    /// <p>A generic address associated with the customer that is not mailing, shipping, or billing.</p>
476    pub fn address(mut self, input: crate::types::Address) -> Self {
477        self.address = ::std::option::Option::Some(input);
478        self
479    }
480    /// <p>A generic address associated with the customer that is not mailing, shipping, or billing.</p>
481    pub fn set_address(mut self, input: ::std::option::Option<crate::types::Address>) -> Self {
482        self.address = input;
483        self
484    }
485    /// <p>A generic address associated with the customer that is not mailing, shipping, or billing.</p>
486    pub fn get_address(&self) -> &::std::option::Option<crate::types::Address> {
487        &self.address
488    }
489    /// <p>The customer’s shipping address.</p>
490    pub fn shipping_address(mut self, input: crate::types::Address) -> Self {
491        self.shipping_address = ::std::option::Option::Some(input);
492        self
493    }
494    /// <p>The customer’s shipping address.</p>
495    pub fn set_shipping_address(mut self, input: ::std::option::Option<crate::types::Address>) -> Self {
496        self.shipping_address = input;
497        self
498    }
499    /// <p>The customer’s shipping address.</p>
500    pub fn get_shipping_address(&self) -> &::std::option::Option<crate::types::Address> {
501        &self.shipping_address
502    }
503    /// <p>The customer’s mailing address.</p>
504    pub fn mailing_address(mut self, input: crate::types::Address) -> Self {
505        self.mailing_address = ::std::option::Option::Some(input);
506        self
507    }
508    /// <p>The customer’s mailing address.</p>
509    pub fn set_mailing_address(mut self, input: ::std::option::Option<crate::types::Address>) -> Self {
510        self.mailing_address = input;
511        self
512    }
513    /// <p>The customer’s mailing address.</p>
514    pub fn get_mailing_address(&self) -> &::std::option::Option<crate::types::Address> {
515        &self.mailing_address
516    }
517    /// <p>The customer’s billing address.</p>
518    pub fn billing_address(mut self, input: crate::types::Address) -> Self {
519        self.billing_address = ::std::option::Option::Some(input);
520        self
521    }
522    /// <p>The customer’s billing address.</p>
523    pub fn set_billing_address(mut self, input: ::std::option::Option<crate::types::Address>) -> Self {
524        self.billing_address = input;
525        self
526    }
527    /// <p>The customer’s billing address.</p>
528    pub fn get_billing_address(&self) -> &::std::option::Option<crate::types::Address> {
529        &self.billing_address
530    }
531    /// Adds a key-value pair to `attributes`.
532    ///
533    /// To override the contents of this collection use [`set_attributes`](Self::set_attributes).
534    ///
535    /// <p>A key value pair of attributes of a customer profile.</p>
536    pub fn attributes(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
537        let mut hash_map = self.attributes.unwrap_or_default();
538        hash_map.insert(k.into(), v.into());
539        self.attributes = ::std::option::Option::Some(hash_map);
540        self
541    }
542    /// <p>A key value pair of attributes of a customer profile.</p>
543    pub fn set_attributes(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
544        self.attributes = input;
545        self
546    }
547    /// <p>A key value pair of attributes of a customer profile.</p>
548    pub fn get_attributes(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
549        &self.attributes
550    }
551    /// <p>An alternative to <code>PartyType</code> which accepts any string as input.</p>
552    pub fn party_type_string(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
553        self.party_type_string = ::std::option::Option::Some(input.into());
554        self
555    }
556    /// <p>An alternative to <code>PartyType</code> which accepts any string as input.</p>
557    pub fn set_party_type_string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
558        self.party_type_string = input;
559        self
560    }
561    /// <p>An alternative to <code>PartyType</code> which accepts any string as input.</p>
562    pub fn get_party_type_string(&self) -> &::std::option::Option<::std::string::String> {
563        &self.party_type_string
564    }
565    /// <p>An alternative to <code>Gender</code> which accepts any string as input.</p>
566    pub fn gender_string(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
567        self.gender_string = ::std::option::Option::Some(input.into());
568        self
569    }
570    /// <p>An alternative to <code>Gender</code> which accepts any string as input.</p>
571    pub fn set_gender_string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
572        self.gender_string = input;
573        self
574    }
575    /// <p>An alternative to <code>Gender</code> which accepts any string as input.</p>
576    pub fn get_gender_string(&self) -> &::std::option::Option<::std::string::String> {
577        &self.gender_string
578    }
579    /// <p>The type of the profile.</p>
580    pub fn profile_type(mut self, input: crate::types::ProfileType) -> Self {
581        self.profile_type = ::std::option::Option::Some(input);
582        self
583    }
584    /// <p>The type of the profile.</p>
585    pub fn set_profile_type(mut self, input: ::std::option::Option<crate::types::ProfileType>) -> Self {
586        self.profile_type = input;
587        self
588    }
589    /// <p>The type of the profile.</p>
590    pub fn get_profile_type(&self) -> &::std::option::Option<crate::types::ProfileType> {
591        &self.profile_type
592    }
593    /// <p>Object that defines the preferred methods of engagement, per channel.</p>
594    pub fn engagement_preferences(mut self, input: crate::types::EngagementPreferences) -> Self {
595        self.engagement_preferences = ::std::option::Option::Some(input);
596        self
597    }
598    /// <p>Object that defines the preferred methods of engagement, per channel.</p>
599    pub fn set_engagement_preferences(mut self, input: ::std::option::Option<crate::types::EngagementPreferences>) -> Self {
600        self.engagement_preferences = input;
601        self
602    }
603    /// <p>Object that defines the preferred methods of engagement, per channel.</p>
604    pub fn get_engagement_preferences(&self) -> &::std::option::Option<crate::types::EngagementPreferences> {
605        &self.engagement_preferences
606    }
607    /// Consumes the builder and constructs a [`CreateProfileInput`](crate::operation::create_profile::CreateProfileInput).
608    pub fn build(
609        self,
610    ) -> ::std::result::Result<crate::operation::create_profile::CreateProfileInput, ::aws_smithy_types::error::operation::BuildError> {
611        ::std::result::Result::Ok(crate::operation::create_profile::CreateProfileInput {
612            domain_name: self.domain_name,
613            account_number: self.account_number,
614            additional_information: self.additional_information,
615            party_type: self.party_type,
616            business_name: self.business_name,
617            first_name: self.first_name,
618            middle_name: self.middle_name,
619            last_name: self.last_name,
620            birth_date: self.birth_date,
621            gender: self.gender,
622            phone_number: self.phone_number,
623            mobile_phone_number: self.mobile_phone_number,
624            home_phone_number: self.home_phone_number,
625            business_phone_number: self.business_phone_number,
626            email_address: self.email_address,
627            personal_email_address: self.personal_email_address,
628            business_email_address: self.business_email_address,
629            address: self.address,
630            shipping_address: self.shipping_address,
631            mailing_address: self.mailing_address,
632            billing_address: self.billing_address,
633            attributes: self.attributes,
634            party_type_string: self.party_type_string,
635            gender_string: self.gender_string,
636            profile_type: self.profile_type,
637            engagement_preferences: self.engagement_preferences,
638        })
639    }
640}
641impl ::std::fmt::Debug for CreateProfileInputBuilder {
642    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
643        let mut formatter = f.debug_struct("CreateProfileInputBuilder");
644        formatter.field("domain_name", &self.domain_name);
645        formatter.field("account_number", &"*** Sensitive Data Redacted ***");
646        formatter.field("additional_information", &"*** Sensitive Data Redacted ***");
647        formatter.field("party_type", &"*** Sensitive Data Redacted ***");
648        formatter.field("business_name", &"*** Sensitive Data Redacted ***");
649        formatter.field("first_name", &"*** Sensitive Data Redacted ***");
650        formatter.field("middle_name", &"*** Sensitive Data Redacted ***");
651        formatter.field("last_name", &"*** Sensitive Data Redacted ***");
652        formatter.field("birth_date", &"*** Sensitive Data Redacted ***");
653        formatter.field("gender", &"*** Sensitive Data Redacted ***");
654        formatter.field("phone_number", &"*** Sensitive Data Redacted ***");
655        formatter.field("mobile_phone_number", &"*** Sensitive Data Redacted ***");
656        formatter.field("home_phone_number", &"*** Sensitive Data Redacted ***");
657        formatter.field("business_phone_number", &"*** Sensitive Data Redacted ***");
658        formatter.field("email_address", &"*** Sensitive Data Redacted ***");
659        formatter.field("personal_email_address", &"*** Sensitive Data Redacted ***");
660        formatter.field("business_email_address", &"*** Sensitive Data Redacted ***");
661        formatter.field("address", &"*** Sensitive Data Redacted ***");
662        formatter.field("shipping_address", &"*** Sensitive Data Redacted ***");
663        formatter.field("mailing_address", &"*** Sensitive Data Redacted ***");
664        formatter.field("billing_address", &"*** Sensitive Data Redacted ***");
665        formatter.field("attributes", &"*** Sensitive Data Redacted ***");
666        formatter.field("party_type_string", &"*** Sensitive Data Redacted ***");
667        formatter.field("gender_string", &"*** Sensitive Data Redacted ***");
668        formatter.field("profile_type", &"*** Sensitive Data Redacted ***");
669        formatter.field("engagement_preferences", &"*** Sensitive Data Redacted ***");
670        formatter.finish()
671    }
672}