updateAccountPasswordPolicy method

Future<void> updateAccountPasswordPolicy({
  1. bool? allowUsersToChangePassword,
  2. bool? hardExpiry,
  3. int? maxPasswordAge,
  4. int? minimumPasswordLength,
  5. int? passwordReusePrevention,
  6. bool? requireLowercaseCharacters,
  7. bool? requireNumbers,
  8. bool? requireSymbols,
  9. bool? requireUppercaseCharacters,
})

Updates the password policy settings for the AWS account.

  • This operation does not support partial updates. No parameters are required, but if you do not specify a parameter, that parameter's value reverts to its default value. See the Request Parameters section for each parameter's default value. Also note that some parameters do not allow the default parameter to be explicitly set. Instead, to invoke the default value, do not include that parameter when you invoke the operation.
For more information about using a password policy, see Managing an IAM Password Policy in the IAM User Guide.

May throw NoSuchEntityException. May throw MalformedPolicyDocumentException. May throw LimitExceededException. May throw ServiceFailureException.

Parameter allowUsersToChangePassword : Allows all IAM users in your account to use the AWS Management Console to change their own passwords. For more information, see Letting IAM Users Change Their Own Passwords in the IAM User Guide.

If you do not specify a value for this parameter, then the operation uses the default value of false. The result is that IAM users in the account do not automatically have permissions to change their own password.

Parameter hardExpiry : Prevents IAM users from setting a new password after their password has expired. The IAM user cannot be accessed until an administrator resets the password.

If you do not specify a value for this parameter, then the operation uses the default value of false. The result is that IAM users can change their passwords after they expire and continue to sign in as the user.

Parameter maxPasswordAge : The number of days that an IAM user password is valid.

If you do not specify a value for this parameter, then the operation uses the default value of 0. The result is that IAM user passwords never expire.

Parameter minimumPasswordLength : The minimum number of characters allowed in an IAM user password.

If you do not specify a value for this parameter, then the operation uses the default value of 6.

Parameter passwordReusePrevention : Specifies the number of previous passwords that IAM users are prevented from reusing.

If you do not specify a value for this parameter, then the operation uses the default value of 0. The result is that IAM users are not prevented from reusing previous passwords.

Parameter requireLowercaseCharacters : Specifies whether IAM user passwords must contain at least one lowercase character from the ISO basic Latin alphabet (a to z).

If you do not specify a value for this parameter, then the operation uses the default value of false. The result is that passwords do not require at least one lowercase character.

Parameter requireNumbers : Specifies whether IAM user passwords must contain at least one numeric character (0 to 9).

If you do not specify a value for this parameter, then the operation uses the default value of false. The result is that passwords do not require at least one numeric character.

Parameter requireSymbols : Specifies whether IAM user passwords must contain at least one of the following non-alphanumeric characters:

! @ # $ % ^ & * ( ) _ + - = { } | '

If you do not specify a value for this parameter, then the operation uses the default value of false. The result is that passwords do not require at least one symbol character.

Parameter requireUppercaseCharacters : Specifies whether IAM user passwords must contain at least one uppercase character from the ISO basic Latin alphabet (A to Z).

If you do not specify a value for this parameter, then the operation uses the default value of false. The result is that passwords do not require at least one uppercase character.

Implementation

Future<void> updateAccountPasswordPolicy({
  bool? allowUsersToChangePassword,
  bool? hardExpiry,
  int? maxPasswordAge,
  int? minimumPasswordLength,
  int? passwordReusePrevention,
  bool? requireLowercaseCharacters,
  bool? requireNumbers,
  bool? requireSymbols,
  bool? requireUppercaseCharacters,
}) async {
  _s.validateNumRange(
    'maxPasswordAge',
    maxPasswordAge,
    1,
    1095,
  );
  _s.validateNumRange(
    'minimumPasswordLength',
    minimumPasswordLength,
    6,
    128,
  );
  _s.validateNumRange(
    'passwordReusePrevention',
    passwordReusePrevention,
    1,
    24,
  );
  final $request = <String, dynamic>{};
  allowUsersToChangePassword
      ?.also((arg) => $request['AllowUsersToChangePassword'] = arg);
  hardExpiry?.also((arg) => $request['HardExpiry'] = arg);
  maxPasswordAge?.also((arg) => $request['MaxPasswordAge'] = arg);
  minimumPasswordLength
      ?.also((arg) => $request['MinimumPasswordLength'] = arg);
  passwordReusePrevention
      ?.also((arg) => $request['PasswordReusePrevention'] = arg);
  requireLowercaseCharacters
      ?.also((arg) => $request['RequireLowercaseCharacters'] = arg);
  requireNumbers?.also((arg) => $request['RequireNumbers'] = arg);
  requireSymbols?.also((arg) => $request['RequireSymbols'] = arg);
  requireUppercaseCharacters
      ?.also((arg) => $request['RequireUppercaseCharacters'] = arg);
  await _protocol.send(
    $request,
    action: 'UpdateAccountPasswordPolicy',
    version: '2010-05-08',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    shape: shapes['UpdateAccountPasswordPolicyRequest'],
    shapes: shapes,
  );
}