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
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
/// <p>A registered user of Quick Sight.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct User {
/// <p>The Amazon Resource Name (ARN) for the user.</p>
pub arn: ::std::option::Option<::std::string::String>,
/// <p>The user's user name. This value is required if you are registering a user that will be managed in Quick Sight. In the output, the value for <code>UserName</code> is <code>N/A</code> when the value for <code>IdentityType</code> is <code>IAM</code> and the corresponding IAM user is deleted.</p>
pub user_name: ::std::option::Option<::std::string::String>,
/// <p>The user's email address.</p>
pub email: ::std::option::Option<::std::string::String>,
/// <p>The Quick Sight role for the user. The user role can be one of the following:.</p>
/// <ul>
/// <li>
/// <p><code>READER</code>: A user who has read-only access to dashboards.</p></li>
/// <li>
/// <p><code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards.</p></li>
/// <li>
/// <p><code>ADMIN</code>: A user who is an author, who can also manage Amazon Quick Sight settings.</p></li>
/// <li>
/// <p><code>READER_PRO</code>: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q in Quick Sight, can build stories with Amazon Q, and can generate executive summaries from dashboards.</p></li>
/// <li>
/// <p><code>AUTHOR_PRO</code>: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&A, and generate executive summaries from dashboards.</p></li>
/// <li>
/// <p><code>ADMIN_PRO</code>: Admin Pros are Author Pros who can also manage Quick Sight administrative settings. Admin Pro users are billed at Author Pro pricing.</p></li>
/// <li>
/// <p><code>RESTRICTED_READER</code>: This role isn't currently available for use.</p></li>
/// <li>
/// <p><code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use.</p></li>
/// </ul>
pub role: ::std::option::Option<crate::types::UserRole>,
/// <p>The type of identity authentication used by the user.</p>
pub identity_type: ::std::option::Option<crate::types::IdentityType>,
/// <p>The active status of user. When you create an Quick Sight user that's not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.</p>
pub active: bool,
/// <p>The principal ID of the user.</p>
pub principal_id: ::std::option::Option<::std::string::String>,
/// <p>The custom permissions profile associated with this user.</p>
pub custom_permissions_name: ::std::option::Option<::std::string::String>,
/// <p>The type of supported external login provider that provides identity to let the user federate into Quick Sight with an associated IAM role. The type can be one of the following.</p>
/// <ul>
/// <li>
/// <p><code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com.</p></li>
/// <li>
/// <p><code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider.</p></li>
/// </ul>
pub external_login_federation_provider_type: ::std::option::Option<::std::string::String>,
/// <p>The URL of the external login provider.</p>
pub external_login_federation_provider_url: ::std::option::Option<::std::string::String>,
/// <p>The identity ID for the user in the external login provider.</p>
pub external_login_id: ::std::option::Option<::std::string::String>,
}
impl User {
/// <p>The Amazon Resource Name (ARN) for the user.</p>
pub fn arn(&self) -> ::std::option::Option<&str> {
self.arn.as_deref()
}
/// <p>The user's user name. This value is required if you are registering a user that will be managed in Quick Sight. In the output, the value for <code>UserName</code> is <code>N/A</code> when the value for <code>IdentityType</code> is <code>IAM</code> and the corresponding IAM user is deleted.</p>
pub fn user_name(&self) -> ::std::option::Option<&str> {
self.user_name.as_deref()
}
/// <p>The user's email address.</p>
pub fn email(&self) -> ::std::option::Option<&str> {
self.email.as_deref()
}
/// <p>The Quick Sight role for the user. The user role can be one of the following:.</p>
/// <ul>
/// <li>
/// <p><code>READER</code>: A user who has read-only access to dashboards.</p></li>
/// <li>
/// <p><code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards.</p></li>
/// <li>
/// <p><code>ADMIN</code>: A user who is an author, who can also manage Amazon Quick Sight settings.</p></li>
/// <li>
/// <p><code>READER_PRO</code>: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q in Quick Sight, can build stories with Amazon Q, and can generate executive summaries from dashboards.</p></li>
/// <li>
/// <p><code>AUTHOR_PRO</code>: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&A, and generate executive summaries from dashboards.</p></li>
/// <li>
/// <p><code>ADMIN_PRO</code>: Admin Pros are Author Pros who can also manage Quick Sight administrative settings. Admin Pro users are billed at Author Pro pricing.</p></li>
/// <li>
/// <p><code>RESTRICTED_READER</code>: This role isn't currently available for use.</p></li>
/// <li>
/// <p><code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use.</p></li>
/// </ul>
pub fn role(&self) -> ::std::option::Option<&crate::types::UserRole> {
self.role.as_ref()
}
/// <p>The type of identity authentication used by the user.</p>
pub fn identity_type(&self) -> ::std::option::Option<&crate::types::IdentityType> {
self.identity_type.as_ref()
}
/// <p>The active status of user. When you create an Quick Sight user that's not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.</p>
pub fn active(&self) -> bool {
self.active
}
/// <p>The principal ID of the user.</p>
pub fn principal_id(&self) -> ::std::option::Option<&str> {
self.principal_id.as_deref()
}
/// <p>The custom permissions profile associated with this user.</p>
pub fn custom_permissions_name(&self) -> ::std::option::Option<&str> {
self.custom_permissions_name.as_deref()
}
/// <p>The type of supported external login provider that provides identity to let the user federate into Quick Sight with an associated IAM role. The type can be one of the following.</p>
/// <ul>
/// <li>
/// <p><code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com.</p></li>
/// <li>
/// <p><code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider.</p></li>
/// </ul>
pub fn external_login_federation_provider_type(&self) -> ::std::option::Option<&str> {
self.external_login_federation_provider_type.as_deref()
}
/// <p>The URL of the external login provider.</p>
pub fn external_login_federation_provider_url(&self) -> ::std::option::Option<&str> {
self.external_login_federation_provider_url.as_deref()
}
/// <p>The identity ID for the user in the external login provider.</p>
pub fn external_login_id(&self) -> ::std::option::Option<&str> {
self.external_login_id.as_deref()
}
}
impl User {
/// Creates a new builder-style object to manufacture [`User`](crate::types::User).
pub fn builder() -> crate::types::builders::UserBuilder {
crate::types::builders::UserBuilder::default()
}
}
/// A builder for [`User`](crate::types::User).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct UserBuilder {
pub(crate) arn: ::std::option::Option<::std::string::String>,
pub(crate) user_name: ::std::option::Option<::std::string::String>,
pub(crate) email: ::std::option::Option<::std::string::String>,
pub(crate) role: ::std::option::Option<crate::types::UserRole>,
pub(crate) identity_type: ::std::option::Option<crate::types::IdentityType>,
pub(crate) active: ::std::option::Option<bool>,
pub(crate) principal_id: ::std::option::Option<::std::string::String>,
pub(crate) custom_permissions_name: ::std::option::Option<::std::string::String>,
pub(crate) external_login_federation_provider_type: ::std::option::Option<::std::string::String>,
pub(crate) external_login_federation_provider_url: ::std::option::Option<::std::string::String>,
pub(crate) external_login_id: ::std::option::Option<::std::string::String>,
}
impl UserBuilder {
/// <p>The Amazon Resource Name (ARN) for the user.</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) for the user.</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) for the user.</p>
pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.arn
}
/// <p>The user's user name. This value is required if you are registering a user that will be managed in Quick Sight. In the output, the value for <code>UserName</code> is <code>N/A</code> when the value for <code>IdentityType</code> is <code>IAM</code> and the corresponding IAM user is deleted.</p>
pub fn user_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.user_name = ::std::option::Option::Some(input.into());
self
}
/// <p>The user's user name. This value is required if you are registering a user that will be managed in Quick Sight. In the output, the value for <code>UserName</code> is <code>N/A</code> when the value for <code>IdentityType</code> is <code>IAM</code> and the corresponding IAM user is deleted.</p>
pub fn set_user_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.user_name = input;
self
}
/// <p>The user's user name. This value is required if you are registering a user that will be managed in Quick Sight. In the output, the value for <code>UserName</code> is <code>N/A</code> when the value for <code>IdentityType</code> is <code>IAM</code> and the corresponding IAM user is deleted.</p>
pub fn get_user_name(&self) -> &::std::option::Option<::std::string::String> {
&self.user_name
}
/// <p>The user's email address.</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 user's email address.</p>
pub fn set_email(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.email = input;
self
}
/// <p>The user's email address.</p>
pub fn get_email(&self) -> &::std::option::Option<::std::string::String> {
&self.email
}
/// <p>The Quick Sight role for the user. The user role can be one of the following:.</p>
/// <ul>
/// <li>
/// <p><code>READER</code>: A user who has read-only access to dashboards.</p></li>
/// <li>
/// <p><code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards.</p></li>
/// <li>
/// <p><code>ADMIN</code>: A user who is an author, who can also manage Amazon Quick Sight settings.</p></li>
/// <li>
/// <p><code>READER_PRO</code>: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q in Quick Sight, can build stories with Amazon Q, and can generate executive summaries from dashboards.</p></li>
/// <li>
/// <p><code>AUTHOR_PRO</code>: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&A, and generate executive summaries from dashboards.</p></li>
/// <li>
/// <p><code>ADMIN_PRO</code>: Admin Pros are Author Pros who can also manage Quick Sight administrative settings. Admin Pro users are billed at Author Pro pricing.</p></li>
/// <li>
/// <p><code>RESTRICTED_READER</code>: This role isn't currently available for use.</p></li>
/// <li>
/// <p><code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use.</p></li>
/// </ul>
pub fn role(mut self, input: crate::types::UserRole) -> Self {
self.role = ::std::option::Option::Some(input);
self
}
/// <p>The Quick Sight role for the user. The user role can be one of the following:.</p>
/// <ul>
/// <li>
/// <p><code>READER</code>: A user who has read-only access to dashboards.</p></li>
/// <li>
/// <p><code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards.</p></li>
/// <li>
/// <p><code>ADMIN</code>: A user who is an author, who can also manage Amazon Quick Sight settings.</p></li>
/// <li>
/// <p><code>READER_PRO</code>: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q in Quick Sight, can build stories with Amazon Q, and can generate executive summaries from dashboards.</p></li>
/// <li>
/// <p><code>AUTHOR_PRO</code>: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&A, and generate executive summaries from dashboards.</p></li>
/// <li>
/// <p><code>ADMIN_PRO</code>: Admin Pros are Author Pros who can also manage Quick Sight administrative settings. Admin Pro users are billed at Author Pro pricing.</p></li>
/// <li>
/// <p><code>RESTRICTED_READER</code>: This role isn't currently available for use.</p></li>
/// <li>
/// <p><code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use.</p></li>
/// </ul>
pub fn set_role(mut self, input: ::std::option::Option<crate::types::UserRole>) -> Self {
self.role = input;
self
}
/// <p>The Quick Sight role for the user. The user role can be one of the following:.</p>
/// <ul>
/// <li>
/// <p><code>READER</code>: A user who has read-only access to dashboards.</p></li>
/// <li>
/// <p><code>AUTHOR</code>: A user who can create data sources, datasets, analyses, and dashboards.</p></li>
/// <li>
/// <p><code>ADMIN</code>: A user who is an author, who can also manage Amazon Quick Sight settings.</p></li>
/// <li>
/// <p><code>READER_PRO</code>: Reader Pro adds Generative BI capabilities to the Reader role. Reader Pros have access to Amazon Q in Quick Sight, can build stories with Amazon Q, and can generate executive summaries from dashboards.</p></li>
/// <li>
/// <p><code>AUTHOR_PRO</code>: Author Pro adds Generative BI capabilities to the Author role. Author Pros can author dashboards with natural language with Amazon Q, build stories with Amazon Q, create Topics for Q&A, and generate executive summaries from dashboards.</p></li>
/// <li>
/// <p><code>ADMIN_PRO</code>: Admin Pros are Author Pros who can also manage Quick Sight administrative settings. Admin Pro users are billed at Author Pro pricing.</p></li>
/// <li>
/// <p><code>RESTRICTED_READER</code>: This role isn't currently available for use.</p></li>
/// <li>
/// <p><code>RESTRICTED_AUTHOR</code>: This role isn't currently available for use.</p></li>
/// </ul>
pub fn get_role(&self) -> &::std::option::Option<crate::types::UserRole> {
&self.role
}
/// <p>The type of identity authentication used by the user.</p>
pub fn identity_type(mut self, input: crate::types::IdentityType) -> Self {
self.identity_type = ::std::option::Option::Some(input);
self
}
/// <p>The type of identity authentication used by the user.</p>
pub fn set_identity_type(mut self, input: ::std::option::Option<crate::types::IdentityType>) -> Self {
self.identity_type = input;
self
}
/// <p>The type of identity authentication used by the user.</p>
pub fn get_identity_type(&self) -> &::std::option::Option<crate::types::IdentityType> {
&self.identity_type
}
/// <p>The active status of user. When you create an Quick Sight user that's not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.</p>
pub fn active(mut self, input: bool) -> Self {
self.active = ::std::option::Option::Some(input);
self
}
/// <p>The active status of user. When you create an Quick Sight user that's not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.</p>
pub fn set_active(mut self, input: ::std::option::Option<bool>) -> Self {
self.active = input;
self
}
/// <p>The active status of user. When you create an Quick Sight user that's not an IAM user or an Active Directory user, that user is inactive until they sign in and provide a password.</p>
pub fn get_active(&self) -> &::std::option::Option<bool> {
&self.active
}
/// <p>The principal ID of the user.</p>
pub fn principal_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.principal_id = ::std::option::Option::Some(input.into());
self
}
/// <p>The principal ID of the user.</p>
pub fn set_principal_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.principal_id = input;
self
}
/// <p>The principal ID of the user.</p>
pub fn get_principal_id(&self) -> &::std::option::Option<::std::string::String> {
&self.principal_id
}
/// <p>The custom permissions profile associated with this user.</p>
pub fn custom_permissions_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.custom_permissions_name = ::std::option::Option::Some(input.into());
self
}
/// <p>The custom permissions profile associated with this user.</p>
pub fn set_custom_permissions_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.custom_permissions_name = input;
self
}
/// <p>The custom permissions profile associated with this user.</p>
pub fn get_custom_permissions_name(&self) -> &::std::option::Option<::std::string::String> {
&self.custom_permissions_name
}
/// <p>The type of supported external login provider that provides identity to let the user federate into Quick Sight with an associated IAM role. The type can be one of the following.</p>
/// <ul>
/// <li>
/// <p><code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com.</p></li>
/// <li>
/// <p><code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider.</p></li>
/// </ul>
pub fn external_login_federation_provider_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.external_login_federation_provider_type = ::std::option::Option::Some(input.into());
self
}
/// <p>The type of supported external login provider that provides identity to let the user federate into Quick Sight with an associated IAM role. The type can be one of the following.</p>
/// <ul>
/// <li>
/// <p><code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com.</p></li>
/// <li>
/// <p><code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider.</p></li>
/// </ul>
pub fn set_external_login_federation_provider_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.external_login_federation_provider_type = input;
self
}
/// <p>The type of supported external login provider that provides identity to let the user federate into Quick Sight with an associated IAM role. The type can be one of the following.</p>
/// <ul>
/// <li>
/// <p><code>COGNITO</code>: Amazon Cognito. The provider URL is cognito-identity.amazonaws.com.</p></li>
/// <li>
/// <p><code>CUSTOM_OIDC</code>: Custom OpenID Connect (OIDC) provider.</p></li>
/// </ul>
pub fn get_external_login_federation_provider_type(&self) -> &::std::option::Option<::std::string::String> {
&self.external_login_federation_provider_type
}
/// <p>The URL of the external login provider.</p>
pub fn external_login_federation_provider_url(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.external_login_federation_provider_url = ::std::option::Option::Some(input.into());
self
}
/// <p>The URL of the external login provider.</p>
pub fn set_external_login_federation_provider_url(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.external_login_federation_provider_url = input;
self
}
/// <p>The URL of the external login provider.</p>
pub fn get_external_login_federation_provider_url(&self) -> &::std::option::Option<::std::string::String> {
&self.external_login_federation_provider_url
}
/// <p>The identity ID for the user in the external login provider.</p>
pub fn external_login_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.external_login_id = ::std::option::Option::Some(input.into());
self
}
/// <p>The identity ID for the user in the external login provider.</p>
pub fn set_external_login_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.external_login_id = input;
self
}
/// <p>The identity ID for the user in the external login provider.</p>
pub fn get_external_login_id(&self) -> &::std::option::Option<::std::string::String> {
&self.external_login_id
}
/// Consumes the builder and constructs a [`User`](crate::types::User).
pub fn build(self) -> crate::types::User {
crate::types::User {
arn: self.arn,
user_name: self.user_name,
email: self.email,
role: self.role,
identity_type: self.identity_type,
active: self.active.unwrap_or_default(),
principal_id: self.principal_id,
custom_permissions_name: self.custom_permissions_name,
external_login_federation_provider_type: self.external_login_federation_provider_type,
external_login_federation_provider_url: self.external_login_federation_provider_url,
external_login_id: self.external_login_id,
}
}
}