code: def members(self, role=None):
          
          if role and role not in TeamRoles.values():
              raise IllegalArgumentError("role should be one of `TeamRoles` {}, got '{}'".format(TeamRoles.values(),
                                                                                                 role))
  
          member_list = self._json_data.get('members')
          if role:
              return [teammember for teammember in member_list if teammember.get('role') == role]
          else:
              return member_list
docs: Members of the team.
  
          You may provide the role in the team, to retrieve only the teammmber with that role. Normally there is a
          single owner, that has administration rights of the team. Normal team members do not have any rights to
          administer the team itself such as altering the teamname, team image and team members. Administrators do
          have the right to administer the the team members.
  
          :param role: (optional) member belonging to a role :class:`pykechain.enums.TeamRoles` to return.
          :type role: basestring or None
          :raises IllegalArgumentError: when providing incorrect roles
          :return: list of dictionaries with members (pk, username, role, email)
  
          Example
          -------
          >>> my_team = client.team(name='My own team')
          >>> my_team.members()
          [{"pk":1, "username"="first user", "role"="OWNER", "email":"email@address.com"}, ...]