docs: def account_policy(name=None, allow_users_to_change_password=None,
                     hard_expiry=None, max_password_age=None,
                     minimum_password_length=None, password_reuse_prevention=None,
                     require_lowercase_characters=None, require_numbers=None,
                     require_symbols=None, require_uppercase_characters=None,
                     region=None, key=None, keyid=None, profile=None):
      '''
      Change account policy.
  
      .. versionadded:: 2015.8.0
  
      name (string)
          The name of the account policy
  
      allow_users_to_change_password (bool)
          Allows all IAM users in your account to
          use the AWS Management Console to change their own passwords.
  
      hard_expiry (bool)
          Prevents IAM users from setting a new password after their
          password has expired.
  
      max_password_age (int)
          The number of days that an IAM user password is valid.
  
      minimum_password_length (int)
          The minimum number of characters allowed in an IAM user password.
  
      password_reuse_prevention (int)
          Specifies the number of previous passwords
          that IAM users are prevented from reusing.
  
      require_lowercase_characters (bool)
          Specifies whether IAM user passwords
          must contain at least one lowercase character from the ISO basic Latin alphabet (a to z).
  
      require_numbers (bool)
          Specifies whether IAM user passwords must contain at
          least one numeric character (0 to 9).
  
      require_symbols (bool)
          Specifies whether IAM user passwords must contain at
          least one of the following non-alphanumeric characters: ! @ # $ % ^ & * ( ) _ + - = [ ] { } | '
  
      require_uppercase_characters (bool)
          Specifies whether IAM user passwords must
          contain at least one uppercase character from the ISO basic Latin alphabet (A to Z).
  
      region (string)
          Region to connect to.
  
      key (string)
          Secret key to be used.
  
      keyid (string)
          Access key to be used.
  
      profile (dict)
          A dict with region, key and keyid, or a pillar key (string)
      '''
      config = locals()
      ret = {'name': 'Account Policy', 'result': True, 'comment': '', 'changes': {}}
      info = __salt__['boto_iam.get_account_policy'](region, key, keyid, profile)
      if not info:
          ret['comment'] = 'Account policy is not Enabled.'
          ret['result'] = False
          return ret
      for key, value in config.items():
          if key in ('region', 'key', 'keyid', 'profile', 'name'):
              continue
          if value is not None and six.text_type(info[key]) != six.text_type(value).lower():
              ret['comment'] = ' '.join([ret['comment'], 'Policy value {0} has been set to {1}.'.format(value, info[key])])
              ret['changes'][key] = six.text_type(value).lower()
      if not ret['changes']:
          ret['comment'] = 'Account policy is not changed.'
          return ret
      if __opts__['test']:
          ret['comment'] = 'Account policy is set to be changed.'
          ret['result'] = None
          return ret
      if __salt__['boto_iam.update_account_password_policy'](allow_users_to_change_password,
                                                             hard_expiry,
                                                             max_password_age,
                                                             minimum_password_length,
                                                             password_reuse_prevention,
                                                             require_lowercase_characters,
                                                             require_numbers,
                                                             require_symbols,
                                                             require_uppercase_characters,
                                                             region, key, keyid, profile):
          return ret
      ret['comment'] = 'Account policy is not changed.'
      ret['changes'] = {}
      ret['result'] = False
      return ret