updateUser method

Future<UpdateUserResponse> updateUser({
  1. required String awsAccountId,
  2. required String email,
  3. required String namespace,
  4. required UserRole role,
  5. required String userName,
  6. String? customPermissionsName,
  7. bool? unapplyCustomPermissions,
})

Updates an Amazon QuickSight user.

May throw AccessDeniedException. May throw InvalidParameterValueException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw PreconditionNotMetException. May throw InternalFailureException. May throw ResourceUnavailableException.

Parameter awsAccountId : The ID for the AWS account that the user is in. Currently, you use the ID for the AWS account that contains your Amazon QuickSight account.

Parameter email : The email address of the user that you want to update.

Parameter namespace : The namespace. Currently, you should set this to default.

Parameter role : The Amazon QuickSight role of the user. The role can be one of the following default security cohorts:

  • READER: A user who has read-only access to dashboards.
  • AUTHOR: A user who can create data sources, datasets, analyses, and dashboards.
  • ADMIN: A user who is an author, who can also manage Amazon QuickSight settings.
The name of the QuickSight role is invisible to the user except for the console screens dealing with permissions.

Parameter userName : The Amazon QuickSight user name that you want to update.

Parameter customPermissionsName : (Enterprise edition only) The name of the custom permissions profile that you want to assign to this user. Customized permissions allows you to control a user's access by restricting access the following operations:

  • Create and update data sources
  • Create and update datasets
  • Create and update email reports
  • Subscribe to email reports
A set of custom permissions includes any combination of these restrictions. Currently, you need to create the profile names for custom permission sets by using the QuickSight console. Then, you use the RegisterUser API operation to assign the named set of permissions to a QuickSight user.

QuickSight custom permissions are applied through IAM policies. Therefore, they override the permissions typically granted by assigning QuickSight users to one of the default security cohorts in QuickSight (admin, author, reader).

This feature is available only to QuickSight Enterprise edition subscriptions that use SAML 2.0-Based Federation for Single Sign-On (SSO).

Parameter unapplyCustomPermissions : A flag that you use to indicate that you want to remove all custom permissions from this user. Using this parameter resets the user to the state it was in before a custom permissions profile was applied. This parameter defaults to NULL and it doesn't accept any other value.

Implementation

Future<UpdateUserResponse> updateUser({
  required String awsAccountId,
  required String email,
  required String namespace,
  required UserRole role,
  required String userName,
  String? customPermissionsName,
  bool? unapplyCustomPermissions,
}) async {
  ArgumentError.checkNotNull(awsAccountId, 'awsAccountId');
  _s.validateStringLength(
    'awsAccountId',
    awsAccountId,
    12,
    12,
    isRequired: true,
  );
  ArgumentError.checkNotNull(email, 'email');
  ArgumentError.checkNotNull(namespace, 'namespace');
  _s.validateStringLength(
    'namespace',
    namespace,
    0,
    64,
    isRequired: true,
  );
  ArgumentError.checkNotNull(role, 'role');
  ArgumentError.checkNotNull(userName, 'userName');
  _s.validateStringLength(
    'userName',
    userName,
    1,
    1152921504606846976,
    isRequired: true,
  );
  _s.validateStringLength(
    'customPermissionsName',
    customPermissionsName,
    1,
    64,
  );
  final $payload = <String, dynamic>{
    'Email': email,
    'Role': role.toValue(),
    if (customPermissionsName != null)
      'CustomPermissionsName': customPermissionsName,
    if (unapplyCustomPermissions != null)
      'UnapplyCustomPermissions': unapplyCustomPermissions,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'PUT',
    requestUri:
        '/accounts/${Uri.encodeComponent(awsAccountId)}/namespaces/${Uri.encodeComponent(namespace)}/users/${Uri.encodeComponent(userName)}',
    exceptionFnMap: _exceptionFns,
  );
  return UpdateUserResponse.fromJson(response);
}