def from_filter(value):
    """
    Specification:
        FROM <image>
        or
        FROM <image>:<tag>
        or
        FROM <image>@<digest>
    """

    detail = None
    if '@' in value:
        image, digest = value.split('@')
        detail = {'image': image, 'digest': digest}

    if ':' in value:
        image, tag = value.split(':')
        detail = {'image': image, 'tag': tag}

    if detail:
        return {'full_name': value, 'detail': detail}
    else:
        return {'full_name': value}