List tags of a trail

    Returns:
        tags:
          - {...}
          - {...}

    CLI Example:

    .. code-block:: bash

        salt myminion boto_cloudtrail.list_tags my_trail

def list_tags(DomainName=None, ARN=None,
           region=None, key=None, keyid=None, profile=None):
    '''
    List tags of a trail

    Returns:
        tags:
          - {...}
          - {...}

    CLI Example:

    .. code-block:: bash

        salt myminion boto_cloudtrail.list_tags my_trail

    '''

    try:
        conn = _get_conn(region=region, key=key, keyid=keyid, profile=profile)
        if ARN is None:
            if DomainName is None:
                raise SaltInvocationError('One (but not both) of ARN or '
                         'domain must be specified.')
            domaindata = status(DomainName=DomainName,
                            region=region, key=key, keyid=keyid,
                            profile=profile)
            if not domaindata or 'domain' not in domaindata:
                log.warning('Domain tags not updated')
                return {'tagged': False}
            ARN = domaindata.get('domain', {}).get('ARN')
        elif DomainName is not None:
            raise SaltInvocationError('One (but not both) of ARN or '
                         'domain must be specified.')
        ret = conn.list_tags(ARN=ARN)
        log.warning(ret)
        tlist = ret.get('TagList', [])
        tagdict = {}
        for tag in tlist:
            tagdict[tag.get('Key')] = tag.get('Value')
        return {'tags': tagdict}
    except ClientError as e:
        return {'error': __utils__['boto3.get_error'](e)}