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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
// 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 GetMemberOutput {
    /// <p>The Amazon Web Services account ID for the account.</p>
    pub account_id: ::std::option::Option<::std::string::String>,
    /// <p>The Amazon Web Services account ID for the administrator account.</p>
    pub administrator_account_id: ::std::option::Option<::std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the account.</p>
    pub arn: ::std::option::Option<::std::string::String>,
    /// <p>The email address for the account. This value is null if the account is associated with the administrator account through Organizations.</p>
    pub email: ::std::option::Option<::std::string::String>,
    /// <p>The date and time, in UTC and extended ISO 8601 format, when an Amazon Macie membership invitation was last sent to the account. This value is null if a Macie membership invitation hasn't been sent to the account.</p>
    pub invited_at: ::std::option::Option<::aws_smithy_types::DateTime>,
    /// <p>(Deprecated) The Amazon Web Services account ID for the administrator account. This property has been replaced by the administratorAccountId property and is retained only for backward compatibility.</p>
    pub master_account_id: ::std::option::Option<::std::string::String>,
    /// <p>The current status of the relationship between the account and the administrator account.</p>
    pub relationship_status: ::std::option::Option<crate::types::RelationshipStatus>,
    /// <p>A map of key-value pairs that specifies which tags (keys and values) are associated with the account in Amazon Macie.</p>
    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    /// <p>The date and time, in UTC and extended ISO 8601 format, of the most recent change to the status of the relationship between the account and the administrator account.</p>
    pub updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
    _request_id: Option<String>,
}
impl GetMemberOutput {
    /// <p>The Amazon Web Services account ID for the account.</p>
    pub fn account_id(&self) -> ::std::option::Option<&str> {
        self.account_id.as_deref()
    }
    /// <p>The Amazon Web Services account ID for the administrator account.</p>
    pub fn administrator_account_id(&self) -> ::std::option::Option<&str> {
        self.administrator_account_id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the account.</p>
    pub fn arn(&self) -> ::std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// <p>The email address for the account. This value is null if the account is associated with the administrator account through Organizations.</p>
    pub fn email(&self) -> ::std::option::Option<&str> {
        self.email.as_deref()
    }
    /// <p>The date and time, in UTC and extended ISO 8601 format, when an Amazon Macie membership invitation was last sent to the account. This value is null if a Macie membership invitation hasn't been sent to the account.</p>
    pub fn invited_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
        self.invited_at.as_ref()
    }
    /// <p>(Deprecated) The Amazon Web Services account ID for the administrator account. This property has been replaced by the administratorAccountId property and is retained only for backward compatibility.</p>
    pub fn master_account_id(&self) -> ::std::option::Option<&str> {
        self.master_account_id.as_deref()
    }
    /// <p>The current status of the relationship between the account and the administrator account.</p>
    pub fn relationship_status(&self) -> ::std::option::Option<&crate::types::RelationshipStatus> {
        self.relationship_status.as_ref()
    }
    /// <p>A map of key-value pairs that specifies which tags (keys and values) are associated with the account in Amazon Macie.</p>
    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        self.tags.as_ref()
    }
    /// <p>The date and time, in UTC and extended ISO 8601 format, of the most recent change to the status of the relationship between the account and the administrator account.</p>
    pub fn updated_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
        self.updated_at.as_ref()
    }
}
impl ::aws_types::request_id::RequestId for GetMemberOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl GetMemberOutput {
    /// Creates a new builder-style object to manufacture [`GetMemberOutput`](crate::operation::get_member::GetMemberOutput).
    pub fn builder() -> crate::operation::get_member::builders::GetMemberOutputBuilder {
        crate::operation::get_member::builders::GetMemberOutputBuilder::default()
    }
}

/// A builder for [`GetMemberOutput`](crate::operation::get_member::GetMemberOutput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct GetMemberOutputBuilder {
    pub(crate) account_id: ::std::option::Option<::std::string::String>,
    pub(crate) administrator_account_id: ::std::option::Option<::std::string::String>,
    pub(crate) arn: ::std::option::Option<::std::string::String>,
    pub(crate) email: ::std::option::Option<::std::string::String>,
    pub(crate) invited_at: ::std::option::Option<::aws_smithy_types::DateTime>,
    pub(crate) master_account_id: ::std::option::Option<::std::string::String>,
    pub(crate) relationship_status: ::std::option::Option<crate::types::RelationshipStatus>,
    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    pub(crate) updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
    _request_id: Option<String>,
}
impl GetMemberOutputBuilder {
    /// <p>The Amazon Web Services account ID for the account.</p>
    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 Web Services account ID for the account.</p>
    pub fn set_account_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.account_id = input;
        self
    }
    /// <p>The Amazon Web Services account ID for the account.</p>
    pub fn get_account_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.account_id
    }
    /// <p>The Amazon Web Services account ID for the administrator account.</p>
    pub fn administrator_account_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.administrator_account_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The Amazon Web Services account ID for the administrator account.</p>
    pub fn set_administrator_account_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.administrator_account_id = input;
        self
    }
    /// <p>The Amazon Web Services account ID for the administrator account.</p>
    pub fn get_administrator_account_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.administrator_account_id
    }
    /// <p>The Amazon Resource Name (ARN) of the account.</p>
    pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.arn = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the account.</p>
    pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.arn = input;
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the account.</p>
    pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.arn
    }
    /// <p>The email address for the account. This value is null if the account is associated with the administrator account through Organizations.</p>
    pub fn email(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.email = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The email address for the account. This value is null if the account is associated with the administrator account through Organizations.</p>
    pub fn set_email(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.email = input;
        self
    }
    /// <p>The email address for the account. This value is null if the account is associated with the administrator account through Organizations.</p>
    pub fn get_email(&self) -> &::std::option::Option<::std::string::String> {
        &self.email
    }
    /// <p>The date and time, in UTC and extended ISO 8601 format, when an Amazon Macie membership invitation was last sent to the account. This value is null if a Macie membership invitation hasn't been sent to the account.</p>
    pub fn invited_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.invited_at = ::std::option::Option::Some(input);
        self
    }
    /// <p>The date and time, in UTC and extended ISO 8601 format, when an Amazon Macie membership invitation was last sent to the account. This value is null if a Macie membership invitation hasn't been sent to the account.</p>
    pub fn set_invited_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.invited_at = input;
        self
    }
    /// <p>The date and time, in UTC and extended ISO 8601 format, when an Amazon Macie membership invitation was last sent to the account. This value is null if a Macie membership invitation hasn't been sent to the account.</p>
    pub fn get_invited_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        &self.invited_at
    }
    /// <p>(Deprecated) The Amazon Web Services account ID for the administrator account. This property has been replaced by the administratorAccountId property and is retained only for backward compatibility.</p>
    pub fn master_account_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.master_account_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>(Deprecated) The Amazon Web Services account ID for the administrator account. This property has been replaced by the administratorAccountId property and is retained only for backward compatibility.</p>
    pub fn set_master_account_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.master_account_id = input;
        self
    }
    /// <p>(Deprecated) The Amazon Web Services account ID for the administrator account. This property has been replaced by the administratorAccountId property and is retained only for backward compatibility.</p>
    pub fn get_master_account_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.master_account_id
    }
    /// <p>The current status of the relationship between the account and the administrator account.</p>
    pub fn relationship_status(mut self, input: crate::types::RelationshipStatus) -> Self {
        self.relationship_status = ::std::option::Option::Some(input);
        self
    }
    /// <p>The current status of the relationship between the account and the administrator account.</p>
    pub fn set_relationship_status(mut self, input: ::std::option::Option<crate::types::RelationshipStatus>) -> Self {
        self.relationship_status = input;
        self
    }
    /// <p>The current status of the relationship between the account and the administrator account.</p>
    pub fn get_relationship_status(&self) -> &::std::option::Option<crate::types::RelationshipStatus> {
        &self.relationship_status
    }
    /// Adds a key-value pair to `tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>A map of key-value pairs that specifies which tags (keys and values) are associated with the account in Amazon Macie.</p>
    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut hash_map = self.tags.unwrap_or_default();
        hash_map.insert(k.into(), v.into());
        self.tags = ::std::option::Option::Some(hash_map);
        self
    }
    /// <p>A map of key-value pairs that specifies which tags (keys and values) are associated with the account in Amazon Macie.</p>
    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
        self.tags = input;
        self
    }
    /// <p>A map of key-value pairs that specifies which tags (keys and values) are associated with the account in Amazon Macie.</p>
    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        &self.tags
    }
    /// <p>The date and time, in UTC and extended ISO 8601 format, of the most recent change to the status of the relationship between the account and the administrator account.</p>
    pub fn updated_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.updated_at = ::std::option::Option::Some(input);
        self
    }
    /// <p>The date and time, in UTC and extended ISO 8601 format, of the most recent change to the status of the relationship between the account and the administrator account.</p>
    pub fn set_updated_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.updated_at = input;
        self
    }
    /// <p>The date and time, in UTC and extended ISO 8601 format, of the most recent change to the status of the relationship between the account and the administrator account.</p>
    pub fn get_updated_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        &self.updated_at
    }
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
        self._request_id = Some(request_id.into());
        self
    }

    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
        self._request_id = request_id;
        self
    }
    /// Consumes the builder and constructs a [`GetMemberOutput`](crate::operation::get_member::GetMemberOutput).
    pub fn build(self) -> crate::operation::get_member::GetMemberOutput {
        crate::operation::get_member::GetMemberOutput {
            account_id: self.account_id,
            administrator_account_id: self.administrator_account_id,
            arn: self.arn,
            email: self.email,
            invited_at: self.invited_at,
            master_account_id: self.master_account_id,
            relationship_status: self.relationship_status,
            tags: self.tags,
            updated_at: self.updated_at,
            _request_id: self._request_id,
        }
    }
}