async def connections(
        for_type: Optional[CONNECTION_TYPES] = None) -> List[Dict[str, str]]:
    """ Return the list of configured connections.

    This is all connections that nmcli knows about and manages.
    Each connection is a dict containing some basic information - the
    information retrievable from nmcli connection show. Further information
    should be queried on a connection by connection basis.

    If for_type is not None, it should be a str containing an element of
    CONNECTION_TYPES, and results will be limited to that connection type.
    """
    fields = ['name', 'type', 'active']
    res, _ = await _call(['-t', '-f', ','.join(fields), 'connection', 'show'])
    found = _dict_from_terse_tabular(
        fields,
        res,
        # ’ethernet’ or ’wireless’ from ’802-11-wireless’ or ’802-4-ethernet’
        # and bools from ’yes’ or ’no
        transformers={'type': lambda s: s.split('-')[-1],
                      'active': lambda s: s.lower() == 'yes'}
    )
    if for_type is not None:
        should_return = []
        for c in found:
            if c['type'] == for_type.value:
                should_return.append(c)
        return should_return
    else:
        return found
Return the list of configured connections.

    This is all connections that nmcli knows about and manages.
    Each connection is a dict containing some basic information - the
    information retrievable from nmcli connection show. Further information
    should be queried on a connection by connection basis.

    If for_type is not None, it should be a str containing an element of
    CONNECTION_TYPES, and results will be limited to that connection type.