1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct UpdateUserInput {
    /// <p>The Amazon Chime account ID.</p>
    pub account_id: ::std::option::Option<::std::string::String>,
    /// <p>The user ID.</p>
    pub user_id: ::std::option::Option<::std::string::String>,
    /// <p>The user license type to update. This must be a supported license type for the Amazon Chime account that the user belongs to.</p>
    pub license_type: ::std::option::Option<crate::types::License>,
    /// <p>The user type.</p>
    pub user_type: ::std::option::Option<crate::types::UserType>,
    /// <p>The Alexa for Business metadata.</p>
    pub alexa_for_business_metadata: ::std::option::Option<crate::types::AlexaForBusinessMetadata>,
}
impl UpdateUserInput {
    /// <p>The Amazon Chime account ID.</p>
    pub fn account_id(&self) -> ::std::option::Option<&str> {
        self.account_id.as_deref()
    }
    /// <p>The user ID.</p>
    pub fn user_id(&self) -> ::std::option::Option<&str> {
        self.user_id.as_deref()
    }
    /// <p>The user license type to update. This must be a supported license type for the Amazon Chime account that the user belongs to.</p>
    pub fn license_type(&self) -> ::std::option::Option<&crate::types::License> {
        self.license_type.as_ref()
    }
    /// <p>The user type.</p>
    pub fn user_type(&self) -> ::std::option::Option<&crate::types::UserType> {
        self.user_type.as_ref()
    }
    /// <p>The Alexa for Business metadata.</p>
    pub fn alexa_for_business_metadata(&self) -> ::std::option::Option<&crate::types::AlexaForBusinessMetadata> {
        self.alexa_for_business_metadata.as_ref()
    }
}
impl UpdateUserInput {
    /// Creates a new builder-style object to manufacture [`UpdateUserInput`](crate::operation::update_user::UpdateUserInput).
    pub fn builder() -> crate::operation::update_user::builders::UpdateUserInputBuilder {
        crate::operation::update_user::builders::UpdateUserInputBuilder::default()
    }
}

/// A builder for [`UpdateUserInput`](crate::operation::update_user::UpdateUserInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct UpdateUserInputBuilder {
    pub(crate) account_id: ::std::option::Option<::std::string::String>,
    pub(crate) user_id: ::std::option::Option<::std::string::String>,
    pub(crate) license_type: ::std::option::Option<crate::types::License>,
    pub(crate) user_type: ::std::option::Option<crate::types::UserType>,
    pub(crate) alexa_for_business_metadata: ::std::option::Option<crate::types::AlexaForBusinessMetadata>,
}
impl UpdateUserInputBuilder {
    /// <p>The Amazon Chime account ID.</p>
    /// This field is required.
    pub fn account_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.account_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The Amazon Chime account ID.</p>
    pub fn set_account_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.account_id = input;
        self
    }
    /// <p>The Amazon Chime account ID.</p>
    pub fn get_account_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.account_id
    }
    /// <p>The user ID.</p>
    /// This field is required.
    pub fn user_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.user_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The user ID.</p>
    pub fn set_user_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.user_id = input;
        self
    }
    /// <p>The user ID.</p>
    pub fn get_user_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.user_id
    }
    /// <p>The user license type to update. This must be a supported license type for the Amazon Chime account that the user belongs to.</p>
    pub fn license_type(mut self, input: crate::types::License) -> Self {
        self.license_type = ::std::option::Option::Some(input);
        self
    }
    /// <p>The user license type to update. This must be a supported license type for the Amazon Chime account that the user belongs to.</p>
    pub fn set_license_type(mut self, input: ::std::option::Option<crate::types::License>) -> Self {
        self.license_type = input;
        self
    }
    /// <p>The user license type to update. This must be a supported license type for the Amazon Chime account that the user belongs to.</p>
    pub fn get_license_type(&self) -> &::std::option::Option<crate::types::License> {
        &self.license_type
    }
    /// <p>The user type.</p>
    pub fn user_type(mut self, input: crate::types::UserType) -> Self {
        self.user_type = ::std::option::Option::Some(input);
        self
    }
    /// <p>The user type.</p>
    pub fn set_user_type(mut self, input: ::std::option::Option<crate::types::UserType>) -> Self {
        self.user_type = input;
        self
    }
    /// <p>The user type.</p>
    pub fn get_user_type(&self) -> &::std::option::Option<crate::types::UserType> {
        &self.user_type
    }
    /// <p>The Alexa for Business metadata.</p>
    pub fn alexa_for_business_metadata(mut self, input: crate::types::AlexaForBusinessMetadata) -> Self {
        self.alexa_for_business_metadata = ::std::option::Option::Some(input);
        self
    }
    /// <p>The Alexa for Business metadata.</p>
    pub fn set_alexa_for_business_metadata(mut self, input: ::std::option::Option<crate::types::AlexaForBusinessMetadata>) -> Self {
        self.alexa_for_business_metadata = input;
        self
    }
    /// <p>The Alexa for Business metadata.</p>
    pub fn get_alexa_for_business_metadata(&self) -> &::std::option::Option<crate::types::AlexaForBusinessMetadata> {
        &self.alexa_for_business_metadata
    }
    /// Consumes the builder and constructs a [`UpdateUserInput`](crate::operation::update_user::UpdateUserInput).
    pub fn build(self) -> ::std::result::Result<crate::operation::update_user::UpdateUserInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::update_user::UpdateUserInput {
            account_id: self.account_id,
            user_id: self.user_id,
            license_type: self.license_type,
            user_type: self.user_type,
            alexa_for_business_metadata: self.alexa_for_business_metadata,
        })
    }
}